ajax跨域问题(php)

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跨域访问

posted @ 2018-03-27 16:07  三土胖  阅读(151)  评论(0)    收藏  举报