哪里可以找到明确的jquery ajax调用错误信息?

时间:2018-02-15 15:18:24

标签: php jquery ajax

我正在尝试找到一个在我的项目中发生错误的地方,以便能够从那里抛出错误消息。

在我调试的项目中,执行ajax post调用。在PHP早期的某处,导致错误的代码正在执行。就我而言,parse error导致问题。尝试从布尔变量中提取数组值。但在那个地方,没有任何问题,代码继续运行。

PHP代码失败:

if ($booleanValue['not-existing-arrayvalue'] == 'true') { }

在某些时候被调用的ajax代码:

var call = $.ajax(options);
call.done(function (result) { ... })
.fail(function(xhr, text_status){ ... }

在fail方法中,错误变得清晰,但它存储在一个巨大的html响应中,因此很难从整个值中获取。它存储在xhr.responseText:

<br />↵<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>↵<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: selected in "C:\workspace\project\class.php" on line <i>14</i></th></tr>↵<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th>

这只是值的一部分,包含导致错误的行号。

有没有人知道这个ajax失败的响应文本来自哪里?是否有可能获得更清晰的消息而不是一个大的html输出字符串?

2 个答案:

答案 0 :(得分:1)

class.php文件的第14行有一个错误,看起来你试图对数组进行越界调用。因此php返回错误响应。 Jquery检测到运行失败函数的错误响应。

如果您使用像fiddler这样的工具查看http请求,那么您可以看到返回了http错误代码而不是正常的200.(可能是500 - 内部服务器错误)。

如果您没有收到明确的php错误消息,那么您应该检查日志文件和/或服务器配置。

答案 1 :(得分:0)

你的问题不是在Ajax中,而是在代码本身中返回答案。从ajax的一侧,你只需要解析一个大字符串的值。