AJAX跨域请求 功能实现

前端之家收集整理的这篇文章主要介绍了AJAX跨域请求 功能实现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当使用ajax跨域请求时,浏览器报错:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的问题,如果用jsonp或者proxy的方式进行修改的话未免需要太大的工程量,所以采用CORS这种比较简单高效的技术。相比JOSP的方式,CORS更为高效。JSONP由于它的原理只能实现GET请求,而CORS支持所有类型的HTTP请求。使用CORS,可以使用普通的ajax实现跨域,这对于前端来说是极大的福音了,这个技术被现在大多数浏览器所普遍支持,因为跨域已经是普遍的要求,浏览器肯定会逐渐流出适当的‘后门'出来专门用以跨域。

浏览器支持情况

服务器端对于CORS的支持,是通过设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问。

具体操作方法,可以通过不同入口来控制:

一、PHP代码控制:

<?PHP
header('Access-Control-Allow-Origin:http://localhost:8080');
header('Access-Control-Allow-Headers:X-Requested-With');
?>

二、html头控制:

 
 
  1. <Meta http-equiv="Access-Control-Allow-Origin"content"*">

三、apache配置:

<Directory />
  
  
  • #在具体的站点目录修改也可以,比如:
  • # "E:\workspace\test">
  • Header set Access-Control-Allow-Origin *
  • #添加上面这句话即可
  • </Directory>
  • 四、Nginx配置

    三、Nginx配置:

     
     
    1. location / {
    2. add_header Access-ControlAllowOrigin*;
    3. }
    在网上看到有人会在Nginx.conf加三句话:
     
     
    1. #授权从other.subdomain.com的请求
    2. add_header 'Access-Control-Allow-Origin' 'http://other.subdomain.com';
    3. #当该标志为真时,响应于该请求是否可以被暴露
    4. 'Access-Control-Allow-Credentials''true';
    5. #指定请求的方法,可以是GET,POST等
    6. 'Access-Control-Allow-Methods''GET';

    猜你在找的Ajax相关文章