你可以把一个项目理解为一个源.Ajax请求可以对源内的资源发起
访问,但是不同源之间进行Ajax就会有问题.简单来说就是,前台页面ajax获取数据的地址和前台页面地址不是同一个站点,或者不是同一个访问地址。如果直接使用ajax访问,会有以下错误:
最简单的解决方式就是在ajax访问文件的头部添加header标签来允许网站访问,允许固定的域名访问
header('Access-Control-Allow-Origin:http://www.cnwenhui.com');上面的代码是允许该网址进行请求。也可以添加多个网址,允许多个域名访问,添加方法略有不同,传入数组$origin
=
isset($_SERVER['HTTP_ORIGIN'])?
$_SERVER['HTTP_ORIGIN']:'';$allow_origin=array(
'http://client1.runoob.com','http://client2.runoob.com');
if(in_array($origin,$allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);}
如果是不考虑安全方面的问题,则直接允许所有网址访问就可以header('Access-Control-Allow-Origin:*');
一般我在项目中使用最后一种较多,在不涉及隐私和金钱方面或者需要安全性较高的接口,一般允许所有访问。
因篇幅问题不能全部显示,请点此查看更多更全内容