【问题标题】:PHP AJAX 12017 Error when calling Header(Location:) [duplicate]PHP AJAX 12017 调用标头(位置:)时出错 [重复]
【发布时间】:2013-02-01 17:22:39
【问题描述】:

我有一个通过 AJAX 调用 PHP 文件的 jquery 函数。在那个 PHP 文件里面我有

 header('Location: http://www.google.com');

但是这不起作用,页面没有重定向,jQuery AJAX调用返回错误,没有12017,我找不到关于这个错误号的太多信息。

我启用了输出缓冲,并尝试将标头调用放在我的 PHP 文件的顶部,但仍然没有运气。有任何想法吗?谢谢。

【问题讨论】:

  • 为什么要通过 AJAX 返回重定向?你想做什么?
  • 如果您在浏览器中查看页面。 (没有 AJAX)重定向是否有效?
  • @Alexander:ajax 函数将表单发布到处理表单的 PHP 函数,如果表单被成功处理,则页面应该重定向,如果不成功,则通过ajax 成功回调,我在那里处理错误。
  • @hek2mgl 我明天试试这个看看
  • 相信你可以在这里找到答案:How to manage a redirect request after a jQuery Ajax call

标签: php jquery ajax header location


【解决方案1】:

我相信如果您使用 ajax 请求,您必须在 javascript(发出请求的地方)内处理重定向。

如果您的 php 脚本在您发出 ajax 请求时设置响应的 Location 标头,它将尝试重定向 ajax 请求而不是浏览器中显示的页面。

您可以尝试处理发出请求的错误(如果我看到发出请求的代码,我会更具体)。

您可以尝试更改您的脚本,使其返回某种状态代码,然后使用 js/jquery 处理此状态并在那里进行重定向:

document.location=' *new url to redirect the browser to* '

【讨论】:

  • 我已经通过 JSON 返回所需的 URL 并使用 jQuery 处理它来工作。谢谢。
猜你喜欢
  • 2017-01-20
  • 2013-09-15
  • 2021-06-25
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多