在jQuery发布后使用PHP重定向

时间:2012-08-05 08:12:01

标签: php jquery redirect

所以我最近了解到,如果你使用jquery $.post发回PHP脚本,你就不能在该脚本中进行@header重定向(即使你在它之后立即使用exit(); )。

这是一个非常令人沮丧的新闻,因为我有一个重要的重定向/ flash消息类,在表单提交成功执行后我经常使用它。

jQuery帖子“贪婪”并且不让php脚本中断它的事实是一个巨大的限制。

有没有人知道一个解决方案,让我将表单数据发布回PHP,然后从PHP中重定向?在javascript中复制重定向/ flash消息类对我来说不是一个真正的选择。

有没有人知道如何克服这个问题?

3 个答案:

答案 0 :(得分:0)

您可以使用success功能重定向浏览器。

$.post(url, data, function() {
     window.location = newUrl;
});

http://api.jquery.com/jQuery.post/

答案 1 :(得分:0)

@ bcmcfc的解决方案是最好的,但如果您需要在重定向之前进行更多交互或计算,则可以查看 xajax 。他们的文档很厚,但它是用户体验设计师的梦想应用程序,填补了你所描述的空白。

答案 2 :(得分:0)

您的脚本重定向,您的JavaScript(jQuery)从我认为的重定向获得结果,或者您的返回包含302:重定向标头。

由于您的脚本使用自己的请求,因此您指示其执行的重定向将不会更新浏览器,并且该功能将永远不存在。您必须在客户端代码中响应来自服务器的请求标头,以响应您想要执行的操作。