【问题标题】:PHP unexpected redirectPHP 意外重定向
【发布时间】:2015-12-09 12:50:45
【问题描述】:

我有一个 php 脚本,我通过 jQuery 的 ajax 调用调用它:

$.ajax({
  contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  type: "POST",
  url: "getFares.php",
  data: someObjectHere,
  success: function(data) {
    handleSuccess(data);
  },
  dataType: "json"
});

大多数情况下,这个请求工作得很好,服务器会发送我期望的值。

但是,有时,服务器只是响应 303 SEE OTHER 响应。在我的 php 脚本中没有任何地方可以产生这种重定向。

不幸的是,当重定向发生时,我无法找到任何类型的模式。它似乎只在我加载页面时发生,然后稍等片刻,然后调用 ajax 请求,但这可能是巧合。

我知道这不是一个很有帮助的描述,但不幸的是我被困在这里,所以我希望幸运的人知道如何解决它。

以下是一些开发工具的屏幕截图,可以更清楚地说明问题:

在这张图片中,您可以看到我向脚本 (getFares.php) 发出了几个请求,并且突出显示了一个有效的请求。可以看到状态码是 200 一切正常。

我在这里突出显示了一个失败的请求。响应是 303 See other。如您所见,请求的其他值都没有改变

我能找到的请求的唯一区别在这里。对于返回正确结果的请求(状态 200),类型为“xhr”,导致重定向的请求类型为“x-www-form-urlencoded; charset=UTF-8”。我不知道为什么会发生这种情况或它来自哪里。

我认为问题可能与错误的服务器/php 设置有关,但很难搜索到这种错误。

【问题讨论】:

  • 您的 ajax 函数似乎在页面加载时执行。如果您在某些活动(如 onclick 或 onchnage 等)中需要它,为什么不将它放在一个函数中。
  • 它实际上是由我点击的按钮触发的

标签: php


【解决方案1】:

这不是 ajax 问题,而是服务器本身出于某种原因发送响应。

getFares.php 页面必须检查一些 post 参数,如果满足,则发送 200 响应,否则发送一些其他响应,如 303。

您可以查看 getFares.php 代码以了解更多信息。

【讨论】:

  • 我也这么认为,但正如我在问题中所说,php 代码中没有重定向
猜你喜欢
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
相关资源
最近更新 更多