咨询电话:
15628812133
09
2019/09

Ajax跨域问题的解决方法

发布时间:2019-09-09 10:18:28
发布者:就是帅
浏览量:
0

Ajax跨域问题是由浏览器的同源策略造成的, 我们可以通过协议+域名+端口确定一个源.  你可以把一个项目理解为一个源. Ajax请求可以对源内的资源发起访问, 但是不同源之间进行Ajax就会有问题.简单来说就是,前台页面ajax获取数据的地址和前台页面地址不是同一个站点,或者不是同一个访问地址。

如果直接使用ajax访问,会有以下错误:

ajax跨域.png

最简单的解决方式就是在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:*');

一般我在项目中使用最后一种较多,在不涉及隐私和金钱方面或者需要安全性较高的接口,一般允许所有访问。

返回列表