`

Ajax 302 及跨域

 
阅读更多

用XMLHttpRequest(jQuery.ajax())访问服务器时,如果返回了标准的302,将要跳到另一个域名下的页面时,会发生跨域错误,FireFox控制台没有提示,Chrome有跨域错误提示。 failHandler里的jqXHR为:readyState=0, status=0,statusText=”error“.

 

当XMLHttpRequest发送send()请求后,如果status code为301, 302, 303, 307, or 308.

会进行几个判断,其中一条为:如果两个地址同源,那么走标准的同源请求事件规则;否则,进行跨域请求(cross-origin request steps).

 

原因就是这样了,跳转目标地址还不支持跨域请求,因此这个302跳转会报跨域请求错误。

解决办法是服务器返回200或者4**结果,然后页面自己处理跳转。

 

参考资料:

http://www.w3.org/TR/XMLHttpRequest/#the-send()-method

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics