ajax或post请求的状态

ajax或post请求的状态,ajax,jquery,httpresponse,Ajax,Jquery,Httpresponse,状态-包含请求的状态,如 ("success", "notmodified", "error", "timeout", or "parsererror") /ajax or post 我知道这里什么是success,notmodified,error,但我无法找到如何处理这些错误。如果回拨成功,则更新我的div;如果有任何错误未修改、错误、超时、分析错误,则让我向弹出窗口发出警报,提示发生了错误 每种类型错误的原因是什么?我指的是发生未修改、超时、错误和parseerror的情况 如果结果是成

状态-包含请求的状态,如

("success", "notmodified", "error", "timeout", or "parsererror") /ajax or post
我知道这里什么是
success,notmodified,error
,但我无法找到如何处理这些错误。如果回拨成功,则更新我的div;如果有任何错误
未修改、错误、超时、分析错误
,则让我向弹出窗口发出警报,提示发生了错误

每种类型错误的原因是什么?我指的是发生
未修改、超时、错误和parseerror
的情况

如果结果是
成功
,那么这是否意味着我的post请求已成功运行

我的本地服务器xampp从未出现任何错误,状态始终为success。我猜,因为它仅限于我的系统,但当我把我的网站上线时,存在一些问题,比如服务器上的流量

那么,我如何才能知道,我对某个
sample.php
页面的post请求是否成功发送,如果出现问题,如何向用户弹出警报?

据我所知

未修改:服务器发送未修改(304)响应状态

超时:服务器在超时属性指定的时间段内没有响应

错误:服务器响应的错误状态为4xx或5xx


parseerror:在处理服务器响应时出现了客户端错误,例如无效的json格式/xml格式。错误类型有点不言自明。它们只是提供一个字符串,以便您轻松处理不同的错误

如果请求失败,将调用错误回调选项。它接收jqXHR、指示错误类型的字符串和异常对象(如果适用)。一些内置错误将提供一个字符串作为异常对象:“中止”、“超时”、“无传输”。

代码解释:

错误:任何HTTP响应代码,如众所周知的404(未找到)或其他内部服务器错误

Notmodified:将浏览器的缓存版本与服务器的版本进行比较。如果它们是相同的,服务器将以304响应

超时:Ajax请求是有时间限制的,因此可以捕获和处理错误以提供更好的用户体验。请求超时通常保留为默认值,或者使用$.ajaxSetup()设置为全局默认值,而不是使用超时选项覆盖特定请求

解析错误:无法解析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);
            }
        }
    });
});

成功

响应代码介于200-299之间或未修改304

未修改

响应代码是304。如果使用缓存,浏览器可以告诉服务器当前的版本,服务器会将其与其版本进行比较,如果没有更改,则可以发送304 Not Modified响应,以向客户端指示其版本是最新的。在jqueryajax中,304未修改响应仍将触发
success
处理程序

错误

响应代码介于400-599之间。例如404未找到、403禁止、500内部服务器错误等

分析错误

这是一个jQuery内部响应,实际上不是HTTP响应。如果jQuery试图解析格式无效或语法错误的JSON或XML,就会发生这种情况

超时

同样,这不是HTTP响应。ajax请求有一个超时,如果在服务器响应之前超过该超时,将中止请求


如果您控制服务器端,在您的示例中是一个PHP脚本,并且从不使用
header()
更改响应代码,那么ajax将始终接收
200 OK
响应,除非PHP中存在未处理的异常,该异常将触发500个内部服务器错误

始终发送
200 OK
响应代码是可以接受的。例如,如果服务器输出一个包含其自身成功/错误标志的JSON对象,则可以通过查看该标志来处理任何错误