javascript - 2xx 范围内的 jQuery ajax 自定义 HTTP 状态消息

标签 javascript jquery http http-status-codes

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

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

例如,我设法从 HTTP 400 FROG CATCH 状态中提取并警告“FROG CATCH”,但无法从 HTTP 中警告“FROG ESCAPE” 200 Frog 逃生

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

有人吗?

最佳答案

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 对象作为状态载体,您可以自定义您的状态响应。至于查看实际的服务器 header 响应是什么,这将列在 Chrome 检查器的网络选项卡、Firebug 的网络选项卡或 Safari 的开发工具部分(我忘记了名称)。

关于javascript - 2xx 范围内的 jQuery ajax 自定义 HTTP 状态消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843494/

相关文章:

java - 在 Java 中通过 HTTP 列出 apache 服务器上的文件/子文件夹

http - 如何在 HTTP 查询字符串中发送 NULL?

javascript - 如何在浏览器中安全存储 JWT?

java - 单击按钮时如何调用servlet

javascript - 评估一个变量以用作变量名?

asp.net - 如何访问 Iframe 的父页面元素

javascript - 为什么我得到日志未定义

JavaScript 实现不起作用 (Chart.js)

javascript - 仅针对链接行中的特定 <td> 禁用链接

java - 在 Java 上对服务器进行 http 查询的有效方法