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

时间:2011-07-27 11:24:46

标签: javascript jquery http http-status-codes

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

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

作为示例,我设法从HTTP 400 FROG CATCH状态提取并警告'FROG CATCH',但无法提醒来自HTTP 200 FROG ESCAPE

的'FROG ESCAPE'

是否有任何机构知道扩展jQuery ajax以支持这种架构的方法?

任何?

1 个答案:

答案 0 :(得分:0)

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的开发工具部分(我忘记了名称)。