1

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

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

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

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

有谁知道克服这个问题的方法?

4

3 回答 3

0

您可以使用成功函数来重定向浏览器。

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

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

于 2012-08-05T08:16:25.243 回答
0

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

于 2012-08-05T08:17:16.967 回答
0

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

由于您的脚本使用自己的请求,因此您告诉它执行的重定向不会更新浏览器,并且该功能永远不会存在。您必须在客户端代码中响应来自服务器的请求标头,以响应您想做的任何事情。

于 2012-08-05T08:21:52.667 回答