jQuery $ .post window.location重定向无法在.done中工作

时间:2016-04-04 03:54:04

标签: jquery redirect

修改由于.done回调内部无法执行,即使是简单的alert('something');

,也会出现问题

我注意到Sverri指出的错误 我应该注意,这个脚本包含在外部,也许这就是问题所在?

登录成功,如果我刷新我所在的同一页面,我会被首页的PHP会话捕获重定向。我试图避免在与表单相同的页面上使用PHP的登录内容,而是将其作为单独的页面包含。

当我在.done catch中处理它时,重定向不起作用。我已登录,该过程正常运行。这就是为什么当我刷新同一页面(登录)时会话存在,所以我被php重定向重定向。

$.post("login.php", {
  'variable1':$variable1,
  'variable2':$variable2
}).done(function() {
  window.location = "next-page-url";
}
});

已更新

$.post("login.php", {
  'variable1':$variable1,
  'variable2':$variable2
}).done(function() {
  window.location = "next-page-url";
});

2 个答案:

答案 0 :(得分:1)

首先,您的代码无效。最后有},不应该在那里。

$.post("login.php", { // <- Open curly
    'variable1':$variable1,
    'variable2':$variable2
}).done(function() { // <- Close and open curly
    window.location = "next-page-url";
} // <- Close curly
}); // <- Close curly (was never opened...)

请改为尝试:

$.post("login.php", {
    variable1: $variable1,
    variable2: $variable2,
}).done(function() {
    window.location = "next-page-url";
});

至于不转到新页面,请参阅this answer

答案 1 :(得分:1)

您的代码没有重大问题,因为只需检查其他回调函数,例如&#39; fail&#39;或直接回调。

  <script>
    $(document).ready(function() {
      alert("hello");
      $.post("/", {
        "var": "hello",
        "bar": "qwerty",
      }).done(function() {
        alert("hello !!");
      }).fail(function() {
        window.location = "www.google.co.in";
      });
    });
  </script>