【问题标题】:jQuery ajax custom HTTP status message on the 2xx rangejQuery ajax 自定义 HTTP 状态消息在 2xx 范围内
【发布时间】:2012-04-15 06:07:52
【问题描述】:
我正在尝试创建响应自定义 http 状态消息的机制,并使用 jQuery Ajax 在客户端捕获它。
我想出了一种方法,只针对错误消息(HTTP 4xx、5xx),而不针对成功的 http 消息(HTTP 2xx)。
例如,我设法从HTTP 400 FROG CATCH 状态中提取并提醒“FROG CATCH”,但无法提醒来自HTTP 200 FROG ESCAPE 的“FROG ESCAPE”
有没有人知道扩展 jQuery ajax 以支持这种模式的方法?
有人吗?
【问题讨论】:
标签:
javascript
jquery
http
http-status-codes
【解决方案1】:
AJAX 响应基于成功和错误。如果您的内容返回 200 状态(正常)、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 的开发工具部分(我忘记了名称)。