在Ajax GET之后重定向

Redirect after Ajax GET

本文关键字:重定向 之后 GET Ajax      更新时间:2023-09-26

我试图让我的服务器重定向我的应用程序后,我做一个未经认证的GET请求使用ajax。但是,当我获得重定向(服务器发送带有/login.html的303的位置)时,我在firebug控制台查看响应选项卡时,在我的响应中获得了login.html的完整HTML(也许这是正常的,我不确定)。然后在firebug中查看这个,我看到它正在尝试进行重定向,但控制台只是在该操作上旋转(从未完成处理)。我试着在网上找到一些相关的信息,但没有成功,我发现最近的是:在这里。

下面是我如何在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见其他连接:维生日期地点:/login.html服务器nginx/1.2.7传输编码:分块所以onreadystatechange函数不应该真正影响重定向(从我的理解),但我想我会把它扔在那里。真的所有应该发生在这里是我说话的服务器加载一些信息,它看到我没有登录(无论是GET或POST),我应该收到重定向到登录页面(这不会发生)。抱歉,如果这听起来像漫谈,我感谢任何建议或帮助任何人可能能够提供。

这里的问题是您只重定向了ajax请求,而不是导航到新url。您必须通过更改onreadystatechange函数中的window.location.href来执行重定向。