**什么是跨域:**
![](https://box.kancloud.cn/c57936e7a986370158e87c50861dcf4f_589x657.png)
**解决跨域问题的方法:**
* Jsonp:只能用get方式,虽然目前使用较多,但已过时。本框架不推荐;
* HTML5 后台添加文件头(IE9及以下不支持):
~~~
header('Access-Control-Allow-Origin:*');//允许所有域名过来的访问
header('Access-Control-Allow-Origin:http://www.client.com');//允许指定的单个域名的访问
//通过判断实现某几个域的访问(框架可以包装成配置文件)
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';
$allow_origin = array(
'http://www.client.com',
'http://www.client2.com'
);
if(in_array($origin, $allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
header('Access-Control-Allow-Methods:POST');
header('Access-Control-Allow-Headers:x-requested-with,content-type');
}
~~~
~~~
后台:header('Access-Control-Allow-Credentials:true');
前台:$.ajax({
url:"B.abc.com",
xhrFields:{
withCredentials:true
},
crossDomain:true
});
//这样设置可以使得后台能够访问前台的cookie
~~~
`header('Access-Control-Allow-Methods:POST'); //允许post方式过来的ajax`
**框架的设置:**
由于所有后台功能和前台页面都是通过入口文件实现的,因此只需要在入口文件处添加以上设置即可