在一个页面上我做多个AJAX调用。所有来电成功返回的响应,但最后一个(不涉及其他Ajax调用)返回500内部服务器错误响应代码(如萤火虫告诉)。然而,尽管有错误代码,正确的内容是从AJAX调用返回。

要我惊讶的是,当我在为php.ini在设置选项的display_errors,错误消失和应对在网页上呈现。我有安装错误记录到一个文件中,但不记录差错对应于上面提到的内部服务器错误。

顺便说,我使用Apache,JQuery的,PHP5,APC(如果它是相关的)。

没有正确的解决方案

其他提示

最有可能的答案,因为资料有限,是PHP是达到,它已经完成呼应你的预期输出后一个致命的错误

要测试:在得到最后执行的行,回声的东西。如果回波显示不出来,那么你知道你的PHP脚本在某处停止。在这一点上,它只是一个调试和跟踪的问题。

这是否使用某种库或其他代码是很奇怪......你不写的可能影响状态码标题的实际返回值的独立?

我有此相同的问题,原来是一个隐藏的致命错误。打开的display_errors,发现错误,粉碎错误,关闭的display_errors(可能是最好保持的display_errors对发展和关闭生产)。

在PHP解释这一个请求期间简单地崩溃。我知道一个潜在原因可能崩溃PHP:

由于GCC 4.3的一些bug,PHP与此版本的编译器编译都有例外破的实施。在一些非平凡的情况下,由脚本抛出异常导致段错误和脚本执行结束。本文由PHP团队几个月前确认。

要验证,无论是发生在你身上,你可以简单地检查,在那里,如果只是抛出一个异常后会发生,你在家里的脚本执行崩溃。该检查可以通过将die()进一步以及我未来的脚本来完成,看看,会发生什么。另一种方法是使用declare(ticks=1)和寄存器保存来自debug_backtrace()每滴答文件中的最后一项打勾功能,让你拿到剧本时,如何执行报告。

我已经有点类似的问题,这个问题是,剧本是抛出异常,也没有catch块所以异常会变成气泡表面和致命错误“未捕获的异常”发生了。这是标准的PHP的行为,但一个特定的服务器上,你也将获得500内部服务器错误的响应代码,而不是200 OK。该服务器上删除例外,并与芯片来替换()语句解决了这个问题(我们能做到这一点,因为它是简单的脚本,真的没有在第一时间从异常受益)

的问题通常是由以下的伊俄涅固定。 检查脚本的权限,权限和所有权。 如果一个Ajax调用后返回,检查是否是无处一个致命的错误。 检查是否没;吨无意中uplaoded该文件以Unix的ASCII模式

更多信息可以在 http://www.larshemel.com/forum/500_internal_server_error

scroll top