Gac*_*cek 11 ajax jquery post httpresponse
我有一个以下的jQuery帖子请求:
$.post("ajax.php", data).done(
function(response){
// do something when response is ok
}
).fail(
function(response){
$("#error").html(response);
}
);
Run Code Online (Sandbox Code Playgroud)
在我的ajax.php文件出现问题时,我返回HTTP响应代码400,并带有一条消息:
header("HTTP/1.0 400 Error");
echo "Some error message";
exit();
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中检查错误调用的响应时,我可以看到状态代码Status Code:400 Bad Request和我在错误消息中传递的响应文本.但是jQuery的.fail回调并没有显示我的response.
如何访问失败/错误响应文本?
编辑
我测试了我的代码,并且.fail正在触发回调,我只是无法显示响应消息.
KAD*_*KAD 15
你需要使用jqXHR:
自jQuery 1.5起,$ .ajax()返回的jQuery XMLHttpRequest(jqXHR)对象是浏览器的本机XMLHttpRequest对象的超集.例如,它包含responseText和responseXML属性,以及getResponseHeader()方法.当传输机制不是XMLHttpRequest(例如,JSONP请求的脚本标记)时,jqXHR对象尽可能模拟本机XHR功能.
.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);
}
);
Run Code Online (Sandbox Code Playgroud)
参考:http://api.jquery.com/jquery.ajax/#jqXHR