在JavaScript中捕捉302 FOUND
我使用jQuery向我的服务器发出一个AJAX POST请求,它可以返回状态为302的HTTP响应。然后,JavaScript向这个URL发送GET请求,而我想在此响应中将用户重定向到URL。 这可能吗?
所接受的答案不适用于所给出的理由。 我发表了一篇评论,其中提到了一个问题的链接,该链接描述了黑客绕过浏览器透明处理302的问题:
如何在jQuery Ajax调用后管理重定向请求
然而,这是一个肮脏的黑客,经过大量挖掘后,我发现我认为是一个更好的解决方案 - 使用JSON。 在这种情况下,您可以使所有对ajax请求的响应具有代码200,并且在响应主体中添加某种JSON对象,然后您的ajax响应处理程序可以以适当的方式使用该对象。
我不这么认为。 W3C表示,必须透明地遵循包含302的某些状态代码的HTTP重定向。 引用如下:
如果响应是HTTP重定向(状态码301,302,303或307),那么它必须被透明地遵守(除非它违反安全或无限循环预防措施)。 任何其他错误(包括401)必须使对象使用该错误页面作为响应。
作为一个实验,我尝试从各种浏览器(Firefox 3.5,Chrome,IE8,IE7,IE6)向服务器发出一个提供302状态代码的Ajax请求,并在浏览器的请求对象中显示状态。 在任何情况下,它显示为200。
在我的问题原因是:
我使用localhost / Home / Test地址来测试页面。 但是,对于url参数,使用127.0.0.1/Home/AjaxRequest的 ajax请求代码。 当网址不同时,会发生此错误。
也许它有助于某人:)
链接地址: http://www.djcxy.com/p/71711.html