CORS(跨来源资源共享协议) 与 http 302状态

昨天遇到的问题

使用ajax请求一个支持CORS的跨域页面(A),此页面返回302状态而且从新定向到页面(B)。此时ajax中止不前,而且触发 ajax onerror 事件。
ajax

正确的相应应该是:ajax继续请求B页面,而且拿到B页面的返回值,触发onload事件。跨域

 

解决

为 B 页面设置一样的CORS支持。
浏览器

header("Access-Control-Allow-Origin:*");

 

下面是关于CORS,和 http 302的介绍。

CORS
cors

是一份浏览器技术的规范,提供了 Web 服务从不一样网域传来沙盒脚本的方法,以避开浏览器的同源策略。
若是您的页面设置了CORS的返回头 Access-Control-Allow-Origin:* ,那么能够接收任何域名的 AJAX 请求。
http://zh.wikipedia.org/wiki/%E8%B7%A8%E4%BE%86%E6%BA%90%E8%B3%87%E6%BA%90%E5%85%B1%E4%BA%AB
http://enable-cors.org/spa

 

http 302code

请求的资源如今临时从不一样的URI响应请求。blog

http 302 总会返回一个(response header) location:http://xxxx.com 。用于把浏览器从新定向到 location 所指定的地址。事件

http://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81ip

 

最后:CORS 是个好东西资源

相关文章
相关标签/搜索