【问题标题】:PHP header(): 302 Moved Temporarily error [duplicate]PHP header():302已移动临时错误[重复]
【发布时间】:2013-12-02 10:44:32
【问题描述】:

在我的 web 应用程序中,我打开了一个模态,在该模态中,我在另一个页面 (ajax.php) 中使用 ajax 处理一些数据,在 ajax.php 中完成处理后我会这样做:

header("location: blah.php");

但是由于我在另一个页面中并且整个过程都在使用 ajax 请求进行,所以页面没有做任何事情,当我通过 FireBug 检查 ajax 请求时,我看到请求变红并出现以下错误:

302 Moved Temporarily error

在这种情况下如何重定向?

提前致谢

【问题讨论】:

  • @h2ooooooo 它与此无关,我需要它在 PHP 中,因为我想在 ajax.php 中进行重定向
  • 然后从 ajax 调用中读取标头。阅读$.ajax 上的文档。当您还没有尝试过时,我们不会为您编写所有代码。 Here's another question you might want to read。你想做的都已经做了一百万次了,只为你把拼图拼凑起来。
  • 没有理由粗鲁。除非您阅读响应 HTTP 标头,否则您无法从 PHP 执行此操作,我的响应中提到了如何阅读这些标头。阅读您的 HTTP 日志,当您自己不费心做任何事情时不要期望得到响应,当您确实得到响应时,请考虑礼貌。

标签: php jquery ajax modal-dialog


【解决方案1】:

响应已经重定向了 AJAX 请求。它不会更改用户当前在浏览器中看到的页面。就是这样,您无法从 PHP 中更改它。 AJAX 请求完全在后台执行,这就是 AJAX 的意义所在。无论服务器返回什么响应,都不会直接明显地影响站点上当前对用户可见的任何内容。您必须完全用 Javascript 处理响应。

如果您想根据失败的 AJAX 响应将用户重定向到另一个页面,您必须在 Javascript 中这样做:

$.ajax(..., function (data) {
    if (/* something or other */) {
        window.location = /* other page */;
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-15
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2010-11-04
    相关资源
    最近更新 更多