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框架)
<?php
namespace 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跨域访问