【发布时间】: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