0

我是 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")
    }
  });
}
4

1 回答 1

0

假设 data 是一个 json 对象,data.redirect 将起作用。为了确保在上面添加 dataType: "json",它应该可以工作。使用 Chromes 网络面板检查服务器是否正确回复。还要检查它返回的 Mime-Type。应该是“应用程序/json”。

请求不成功时触发错误函数。它需要 3 个参数,但第二个是错误字符串,可以是“timeout”、“error”、“abort”和“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);
           }
    });

}

于 2013-08-25T03:58:25.967 回答