gpt4 book ai didi

jQuery 失败后回调不显示代码 400 的响应

转载 作者:行者123 更新时间:2023-12-03 22:14:42 24 4
gpt4 key购买 nike

我有一个以下 jQuery post 请求:

$.post("ajax.php", data).done(
function(response){
// do something when response is ok
}
).fail(
function(response){
$("#error").html(response);
}
);

在我的 ajax.php 文件中,当出现问题时,我会返回 HTTP 响应代码 400 并附带一条消息:

header("HTTP/1.0 400 Error");
echo "Some error message";
exit();

当我在浏览器中检查错误调用的响应时,我可以看到状态代码 Status Code:400 Bad Request 以及我在错误消息中传递的响应文本。但 jQuery 的 .fail 回调未显示我的响应

如何访问失败/错误响应文本?

编辑

我测试了我的代码,并且 .fail 回调被触发,我只是无法获取正在显示的响应消息。

最佳答案

您需要使用jqXHR:

The jQuery XMLHttpRequest (jqXHR) object returned by $.ajax() as of jQuery 1.5 is a superset of the browser's native XMLHttpRequest object. For example, it contains responseText and responseXML properties, as well as a getResponseHeader() method. When the transport mechanism is something other than XMLHttpRequest (for example, a script tag for a JSONP request) the jqXHR object simulates native XHR functionality where possible.

.fail 是 jqXHR 对象的可用 Promise 方法之一,

jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});

您可以使用 responseText 属性来获取错误消息:

$.post("ajax.php", data).done(
function(response){
// do something when response is ok
}
).fail(
function(jqXHR, textStatus, errorThrown) {
$("#error").html(jqXHR.responseText);
}
);

引用:http://api.jquery.com/jquery.ajax/#jqXHR

关于jQuery 失败后回调不显示代码 400 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com