jquery发布完成后

时间:2009-10-08 16:02:02

标签: jquery ajax post redirect

我有一个脚本执行jquery AJAX帖子,然后应该重定向到另一个页面。问题是它有时会在帖子完成之前重定向。似乎有几个解决方案,但我不能让它们中的任何一个起作用。谢谢你的帮助! 这是我的代码:

$.post("cart.php", { 'products[]':postvalues }, function(data) { });
location.href="index.php";

4 个答案:

答案 0 :(得分:5)

您需要将location.href置于回调函数中。

$.post("cart.php", { 'products[]':postvalues }, function(data, status) {
    // if you don't want to redirect if it doesn't work, you can check if status == 'success'
    location.href = "index.php";
});

有关详细信息,请参阅jQuery.post文档。

虽然,我必须问:无论如何你要重定向,为什么要通过ajax?

有什么理由你不想简单地以正常方式提交表格吗?如果没有,你应该走那条路。

答案 1 :(得分:1)

成功时在回调函数中重定向:

$.post("cart.php", { 'products[]':postvalues }, function(data, textStatus) {
    if (textStatus == "success") {
        location.href="index.php";
    }
});

有关实施进一步错误处理的其他状态,请参阅jQuery.post

答案 2 :(得分:1)

您的问题是您的位置更改并未等待您的帖子操作完成...因为post使用Ajax,所以一旦发送请求,它就会将控制传递给下一行。

要解决此问题,请执行以下操作:

$.post("cart.php", { 'products[]':postvalues }, function(data) {
// do stuff with data
location.href="index.php";
 });

答案 3 :(得分:0)

如果你想去同一个页面你可以做window.location.reload(),如果想要滥用JS你可以使用load到一个div,只有内容