当前位置:  开发笔记 > 前端 > 正文

返回重定向作为对XHR请求的响应

如何解决《返回重定向作为对XHR请求的响应》经验,为你挑选了2个好方法。

如果浏览器收到对ajax请求的重定向响应会发生什么?



1> greim..:

如果浏览器收到对ajax请求的重定向响应会发生什么?

如果服务器发送重定向(也称为302响应加上Location:标头),则浏览器会自动遵循重定向.对第二个请求的响应(假设它也不是另一个重定向)是您的程序所接受的.

实际上,您无法检测302响应是否已发生.如果302重定向导致200,那么您的程序的行为与原始请求直接导致200的行为完全相同.

这既是我的经验,也是规范中提到的行为.

2016年更新:时间已经过去了,好消息是新的fetch()API被指定为处理重定向的方式提供更细粒度的控制,默认行为类似于XHR.也就是说,它只适用于本机实现fetch()的地方.polyfill版本的fetch() - 基于XHR- 继续具有XHR的限制.幸运的是,本机浏览器支持似乎很好地完善了.


有趣的是,我到达这里是因为我遇到的情况是重定向显然没有被遵循......当重定向违反相同的原始策略时会发生这种情况.
@Gus这可能是合乎逻辑的
RESTful API可以在POST请求之后发送201和Location头; 请参阅http://www.restapitutorial.com/lessons/httpmethods.html.

2> jishi..:

ajax-request将跟踪该重定向AFAIK.实际内容(.responseText,.responseXML)将是您重定向到的页面中的内容.

您可能能够拦截2或3 上的重定向(status-code,location-header)readyState,但不确定它.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有