同源策略:请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.
跨域的安全限制是对浏览器端来说的
cs2.cn 去访问 cs.cn,就会出现跨域问题,跨域请求的报错如下图

1.JQ 的jsonp 方式
$.ajax({
//只能是get 方式
type:"get",
//请求的地址
url:"http://cs.cn/index/api/index",
//必须 jsonp 方式
dataType:"jsonp",
//默认为:callback,对应处理页面接收的名字
jsonp:"callback",
//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 ,选填,优先执行此方法,处理自己的业务
jsonpCallback:"xiaozhu",
success : function(data){
//请求返回的结果
console.log('data');
},
error:function(){
alert('fail');
}
});
//回调的函数,优先执行此方法
function xiaozhu() {
console.log(88)
//业务处理
}
php 处理
$callback=$_GET['callback'];
$list=db('data')
->limit(5)
->select();
return $callback.'('.json_encode($list).')';
2.$_SERVER['HTTP_ORIGIN']
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://localhost:8080', 'http://test.com:8080', 'http://test1.cn:8080' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Credentials: true'); header("Access-Control-Allow-Headers: *"); header('Access-Control-Allow-Origin:'.$origin); header('Access-Control-Max-Age:3600'); }