我发现很多带有成功,错误和完成选项的jquery ajax调用示例。
但是尚未找到一种解释,说明应该在目标php源代码中放置什么以告诉回调发生了错误。
我知道,如果我将ajax调用设置为期望返回json,并且没有目标返回json字符串,那么我会得到error:选项定义的行为。还有另一种触发错误选项的方法吗?
我还想获得有关参考/文档/教程的建议,以用于响应ajax代码的php代码应该是什么。
答案 0 :(得分:0)
如果PHP页面正常,默认情况下HTTP响应代码为200。
jQuery成功的HTTP响应代码为:
isSuccess = status >= 200 && status < 300 || status === 304;
(作为jQuery源代码行9247 https://code.jquery.com/jquery-3.3.1.js)
PHP端,如果您想告诉jQuery附加错误,则可以使用函数标头:
header($_SERVER["SERVER_PROTOCOL"]." 400 Bad Request");
header($_SERVER["SERVER_PROTOCOL"]." 403 Forbidden");
...
有关HTTP状态代码的更多信息,您可以在此处列出: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
答案 1 :(得分:-1)
查看以下文章,看看它们是否可以澄清您的担忧
Ajax错误降至jQuery.ajax()
错误
类型:函数(jqXHR jqXHR,字符串textStatus,字符串errorThrown)A 如果请求失败,则调用该函数。功能接收 三个参数:jqXHR对象(在jQuery 1.4.x中,XMLHttpRequest),一个 描述发生的错误类型的字符串和可选的 异常对象(如果发生)。第二个可能的值 参数(除null外)是“超时”,“错误”,“中止”和 “ parsererror”。发生HTTP错误时,errorThrown会收到 HTTP状态的文本部分,例如“未找到”或“内部 服务器错误。”从jQuery 1.5开始,错误设置可以接受一个数组 功能。每个函数将依次调用。注意:此处理程序 跨域脚本和跨域JSONP请求未调用。 这是一个Ajax事件。
还有来自社区的另一篇文章: https://stackoverflow.com/a/6265911/2289769
PHP响应标头和数据类型应与Ajax请求中的相同。请求json时,PHP还应该返回json,否则ajax将无法触发错误。
您可以查看的一些教程:AJAX Request Handler with PHP
答案 2 :(得分:-1)
Php引发类似以下错误:致命错误意外T字符串... 然后在回调中使用js搜索功能,并检查单词error是否存在。 最好的方法是处理来自PHP的所有错误 然后回显表示发生此错误的您自己的自定义文本,因此请检查回调中的文本。 您可以在if else块或try catch块中使用一个函数,如果不知道,可以使用php的google try catch教程。