ajax出現請求跨域錯誤問題,主要原因就是因為瀏覽器的“同源策略”。
解決方法(我只用過下面這3種):
1. 架設服務器代理:即瀏覽器請求同源服務器,再由后者請求外部服務(之前博主一直用這種方法,其實感覺這種算不上跨域請求了)。
2. 就是使用jsonp方式(博主用的不多)
3.就是通過設置header頭部信息來實現(本章主要講這個,實現很簡單)
就是在你要請求的地址中添加 header('Access-Control-Allow-Origin:*'); 設置你允許訪問的域名就可以了看一下下面的例子:比如 你的要通過 http://a.com/a.js 來訪問 http://b.com/b.php 實現跨域, 那么你就要在 b.php中實現(博主用的tp框架)<?phpnamespace Tw\Controller;use Think\Controller;class MarketdataController extends BaseController{public function gethq(){$data = ['message' => '請輸入code'];header('Access-Control-Allow-Origin:http://a.com');$this->ajaxReturn($data);}}
就可以了。(有的可能還需要配置一下服務器設置,我用的集成環境,只加這個就可以了)
Access-Control-Allow-Origin:* 表示允許任何域名跨域訪問
'Access-Control-Allow-Origin:http://a.com 表示允許http://a.com跨域訪問