在我使用 ajax 执行未授权的 GET 请求后,我试图让我的服务器重定向我的应用程序。但是,当我获得重定向(服务器发送带有 /login.html 位置的 303 )时,我在查看 firebug 控制台中的“响应”选项卡时在我的响应中获得了 login.html 的完整 HTML(也许这是正常的,我'不确定)。然后在萤火虫中查看它,我看到它正在尝试进行重定向,但控制台只是在执行该操作(从未完成处理它)。我曾尝试在网上找到一些相关信息,但没有成功,我找到的最接近的是:HERE。
这是我在 JavaScript 中处理这个问题的方式:
function doSomethingAwesome()
{
try
{
ajaxObject.open("GET", serverLocation+ '?action=getSomeInfo', true);
ajaxObject.send();
}
catch(err){}
}
ajaxObject.onreadystatechange = function()
{
if(ajaxObject.status == 200 && ajaxUsers.readyState == 4)
{
do some stuff
}
}
我的响应头有以下信息: 303 See Other Connection: Keep-alive Date Location: /login.html Server nginx/1.2.7 Transfer-Encoding: chunked 所以 onreadystatechange 函数不应该真正影响重定向(据我了解) 但我想我会把它扔在那里。实际上,这里应该发生的所有事情都是我与服务器交谈以加载一些信息,它看到我没有登录(无论是 GET 还是 POST),我应该收到一个重定向到登录页面(这不会'不会发生)。抱歉,如果这听起来像漫无边际,我感谢任何人可以提供的任何建议或帮助。