在一个页面上我做多个AJAX调用。 所有来电成功返回的响应,但最后一个(不涉及其他Ajax调用)返回500内部服务器错误响应代码(如萤火虫告诉)。 然而,尽管有错误代码,正确的内容是从AJAX调用返回。
令我惊讶的是,当我设置的display_errors在php.ini选项为ON时,错误消失,并在网页上呈现的响应。 我有安装错误记录到一个文件中,但记录对应于上述内部服务器错误没有错误。
顺便说一句,我使用Apache,JQuery的,PHP5,APC(如果适用)。
在一个页面上我做多个AJAX调用。 所有来电成功返回的响应,但最后一个(不涉及其他Ajax调用)返回500内部服务器错误响应代码(如萤火虫告诉)。 然而,尽管有错误代码,正确的内容是从AJAX调用返回。
令我惊讶的是,当我设置的display_errors在php.ini选项为ON时,错误消失,并在网页上呈现的响应。 我有安装错误记录到一个文件中,但记录对应于上述内部服务器错误没有错误。
顺便说一句,我使用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。 该服务器上删除例外,并与芯片来替换()语句解决了这个问题(我们能做到这一点,因为它是简单的脚本,真的没有在第一时间从异常受益)
这个问题通常是由以下的IONE固定。 检查脚本的权限,权限和所有权。 如果一个Ajax调用后返回,检查是否是无处一个致命的错误。 检查是否没;吨意外的文件uplaoded为Unix在ASCII模式。
更多信息,可以在读取http://www.larshemel.com/forum/500_internal_server_error