Javascript ajax调用期间的重定向

Javascript ajax调用期间的重定向,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不熟悉AJAX/jQuery。我有两个按钮。在每个按钮上单击,我需要向服务器发送一个AJAX请求。但在这个过程中,我还必须检查用户是否已登录。如果用户未登录,则应将其重定向到登录页面,并在登录后返回同一页面。同样在AJAX调用中,URL中指定的应用程序检查用户是否登录,并将其重定向到登录页面。该应用程序包含为登录页面构建URL的功能。若用户已经登录,那个么将在应用程序中调用另一个函数。我现在面临的问题是,当我运行整个项目时,成功函数没有被调用。而是调用error函数。但若我将参数作为查询参数传

我不熟悉AJAX/jQuery。我有两个按钮。在每个按钮上单击,我需要向服务器发送一个AJAX请求。但在这个过程中,我还必须检查用户是否已登录。如果用户未登录,则应将其重定向到登录页面,并在登录后返回同一页面。同样在AJAX调用中,URL中指定的应用程序检查用户是否登录,并将其重定向到登录页面。该应用程序包含为登录页面构建URL的功能。若用户已经登录,那个么将在应用程序中调用另一个函数。我现在面临的问题是,当我运行整个项目时,成功函数没有被调用。而是调用error函数。但若我将参数作为查询参数传递给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")
    }
  });
}

假设数据是json对象,则data.redirect将起作用。 确保添加 数据类型:“json”, 这一点应该是可行的。 使用Chromes网络面板检查服务器是否正确回话。 还要检查它返回的Mime类型。应该是“application/json”

错误函数在请求失败时激发。 它有3个参数,但第2个是错误字符串,可以是“timeout”、“Error”、“abort”和“parserror”

试试这个,你会发现更多的调试信息

{
  $.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);
           }
    });

}

这可能是您的URL重写中的一个问题。