我有一个脚本执行jquery AJAX帖子,然后应该重定向到另一个页面。问题是它有时会在帖子完成之前重定向。似乎有几个解决方案,但我不能让它们中的任何一个起作用。谢谢你的帮助! 这是我的代码:
$.post("cart.php", { 'products[]':postvalues }, function(data) { });
location.href="index.php";
答案 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,只有内容