【发布时间】:2009-07-22 15:03:37
【问题描述】:
我正在将 Kohana PHP 框架用于应用程序。现在我遇到了一个问题,当jQuery对某个文件进行AJAX请求时,它确实可以工作,但是当这个文件抛出PHP异常时,jQuery会失败并且不显示文件的输出。
一个小例子,这是一段Javascript:
$.post($('#' + e.currentTarget.id).attr('action'), $('#' + e.currentTarget.id).serialize(), function ( data )
{
alert ( data );
}/*, 'json' */);
现在,当 PHP 文件执行此操作(弹出警告框)时,它可以工作:
<?php echo 'Test'; ?>
但是当 PHP 文件的某个地方发生这种情况时:
<?php throw new Exception ( 'Test' ); ?>
jQuery 失败并且不显示输出的 HTML 错误,PHP 标头(由 PHP 生成?)也存在差异:
使用 PHP 回显(好):
. Connection:Keep-Alive
. Content-Encoding:gzip
. Content-Length:544
. Content-Type:text/html; charset=UTF-8
. Date:Wed, 22 Jul 2009 14:22:43 GMT
. Keep-Alive:timeout=15, max=100
. Server:Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2
. Vary:Accept-Encoding
. X-Powered-By:PHP/5.2.6
PHP 异常(失败):
. Connection:close
. Content-Encoding:gzip
. Content-Length:1896
. Content-Type:text/html; charset=UTF-8
. Date:Wed, 22 Jul 2009 14:23:11 GMT
. Server:Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2
. Vary:Accept-Encoding
. X-Powered-By:PHP/5.2.6
现在我真的没有看到问题,PHP 以两种方式回显一些 HTML。以前有人遇到过这个问题,你是怎么解决的?
感谢您的帮助!
【问题讨论】:
-
您为 PHP 设置的 error_reporting 级别是多少?如果它没有设置为显示异常(但应该是),那么您将看不到任何输出。
-
它确实显示错误,当抛出异常时,它会将整个回溯(HTML)作为错误消息输出。如果 PHP 没有显示错误(它确实显示了错误),逻辑上看 Javascript 应该弹出一个空警报框?
标签: php jquery exception header kohana