ajax调用期间的重定向

时间:2013-08-25 03:39:40

标签: javascript jquery ajax

我是AJAX / jQuery的新手。我有2个按钮。在每个按钮上单击我需要向服务器发送AJAX请求。但在此过程中,我还要检查用户是否已登录。如果用户未登录,则应将其重定向到登录页面,登录后他应返回同一页面。同样在AJAX中调用URL中指定的应用程序,检查用户是否登录并将其重定向到登录页面。应用程序包含构建登录页面URL的功能。如果用户已登录,则将在应用程序中调用另一个函数。我现在面临的问题是当我运行整个项目时,成功函数没有被调用。而是调用错误函数。但是,如果我将参数作为查询参数传递给URL,那么我将被重定向到登录页面。

例如:www.abc.com/application X = 1&安培; Y = 2

任何想法都会受到赞赏。

{
  $.ajax({
    type: "GET",
    data: {
      X:param1,
      Y:param2,
    },
    url: "/application",
    success: function(data, status)
    {
      if (data.redirect) {
        window.location.href = data.redirect;
      } else {
        alert("success message");
      }
    },
    error:function()
    {
      alert("error message")
    }
  });
}

1 个答案:

答案 0 :(得分:0)

假设数据是json对象,

data.redirect将起作用。 确保添加     dataType:“json”, 到上面,它应该工作。 使用Chromes Network面板检查服务器是否正在正确通话。 还要检查它返回的Mime-Type。应该是'application / json'。

错误函数在请求失败时触发。 它需要3个参数,但第二个是错误字符串可以是“超时”,“错误”,“中止”和“parsererror”。

尝试使用此功能,您可能会找到更多调试信息;

{
  $.ajax({
           type: "GET",
           data: {
                  X:param1,
                  Y:param2,
               },
           url: "/application",
           success: function(data, status)
           {
             if (data.redirect) {
               window.location.href = data.redirect;
             } else {
               alert("success message");
             }
           },
           error:function(jqXHR, text)
           {
             alert("error message: "+text);
           }
    });

}