jQuery ajax自定义HTTP状态消息在2xx范围内

jQuery ajax custom HTTP status message on the 2xx range

本文关键字:2xx 范围内 消息 状态 ajax 自定义 HTTP jQuery      更新时间:2023-09-26

我正在尝试用自定义http状态消息响应机制,并在客户端使用jQuery Ajax捕获它。

我想出了一种方法,只做错误消息(HTTP 4xx, 5xx),但不为成功的HTTP消息(HTTP 2xx)。

作为例子,我设法从HTTP 400 FROG CATCH状态中提取并警报'FROG CATCH',但不能从HTTP 200 FROG ESCAPE中警报 'FROG ESCAPE'

有没有人知道一种方法来扩展jQuery ajax支持这种模式?

有人知道吗?

AJAX响应基于成功和错误。如果您的内容返回状态为200 (OK)、304(未修改),等等……那么AJAX调用将利用成功响应部分,而不是通常显示状态的错误部分(错误部分中的状态主要用于指示错误的原因)。根据返回的内容和返回的格式,你应该在成功部分中寻找响应。假设您的服务器语言是PHP,您可以在返回的数据中包含成功状态(转换为JSON对象以进行解析),如下所示:

$.ajax({
    url : 'your_url.php',
    type : 'POST',
    dataType : 'JSON',
    data : yourData,
    success : function(data) {
        if(data) {
            if(data.status) {
                alert('Status: ' + data.status);
            }
        }
    },
    error : function(xhr, response, status) {
        alert('Response: ' + response.responsetext);
    }
});

通过使用JSON对象作为状态载体,您可以自定义状态响应。至于看到实际的服务器头响应是什么,这将在Chrome检查器的网络选项卡,Firebug的网络选项卡或Safari的开发工具部分(我忘记了名字)中列出。