status - 包含请求的状态,如
("success", "notmodified", "error", "timeout", or "parsererror") /ajax or post
我知道success,not modified,error
的含义是什么,但我无法找到,如何处理这些错误。如果回调成功,那么更新我的div,如果有任何错误not modified, error, time out, parse error
,那么让我警告弹出一些错误。
任何人都可以详细解释我每种错误的原因。我指的是发生not modified,timeout,error and parseerror
的情况。
如果结果为success
,则表示我的帖子请求已成功运作?
我的本地服务器xampp永远不会导致任何错误,状态总是成功。我猜,因为它仅限于我的系统,但当我将我的网站放在网上时,存在一些问题,如服务器上的流量。
那么我怎么知道我的某个sample.php
页面的帖子请求是否已成功发送,如果出现问题,还会向用户发出警告?
任何人都可以清楚地向我解释这一点。任何帮助都非常感激
答案 0 :(得分:1)
错误类型有点不言自明。它们只是为您提供一个字符串,以便您轻松处理不同的错误。
如果请求失败,则调用错误回调选项。它接收jqXHR,一个指示错误类型的字符串,以及一个异常对象(如果适用)。一些内置错误将提供一个字符串作为异常对象:“abort”,“timeout”,“No Transport”。 Source: jQuery.Ajax documentation
代码说明:
错误:任何HTTP响应代码,例如众所周知的404(未找到)或其他内部服务器错误。
未修改:将浏览器的缓存版本与服务器版本进行比较。如果它们相同,则服务器以304
响应超时: Ajax请求是有时间限制的,因此可以捕获并处理错误以提供更好的用户体验。请求超时通常保留为默认值或使用$ .ajaxSetup()设置为全局默认值,而不是使用timeout选项覆盖特定请求。
解析错误:无法解析jQuery数据(JSON)(通常是由于语法错误)
处理这些错误代码: 以下是处理错误的一些示例
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
答案 1 :(得分:0)
据我所知
未修改:服务器发送未修改(304)响应状态
超时:服务器在超时属性指定的时间段内没有响应
错误:服务器响应,错误状态为4xx或5xx
parseerror :处理服务器响应时出现客户端错误,如无效的json格式/ xml格式
答案 2 :(得分:0)
<强>成功强>
响应代码介于200-299之间,或者是304 Not Modified。
未修改
响应代码是304.如果您使用缓存,浏览器可以告诉服务器它当前有哪个版本,服务器将其与其版本进行比较,如果没有更改,它可以发送304 Not Modified响应,向客户表明他们的版本是最新的。在jQuery ajax中,304 Not Modified响应仍将触发success
处理程序。
错误强>
响应代码介于400-599之间。这可能是例如404找不到,403禁止,500内部服务器错误等。
解析错误
这是一个jQuery内部,实际上不是HTTP响应。如果jQuery试图解析不是有效格式或语法错误的JSON或XML,就会发生这种情况。
<强>超时强>
同样,这不是HTTP响应。 ajax请求有一个超时,如果在服务器响应之前超过,则将中止请求。
如果您控制服务器端,在您的示例中是PHP脚本,并且您永远不会使用header()
更改响应代码,那么您的ajax将始终收到200 OK
响应,除非在该示例中存在未处理的异常PHP将触发500内部服务器错误。
始终发送200 OK
响应代码是可以接受的。例如,如果服务器输出一个包含其自己的成功/错误标志的JSON对象,则可以通过查看该标志来处理任何错误。