正如我在标题中提到的,如何在Ajax请求的完成回调中访问响应的状态代码?
var isUsernameGood = new Promise(
function(resolve, reject) {
console.log("Starting username check");
$.ajax({
type: "POST",
url: '/username',
contentType:'application/json',
data: JSON.stringify({username: document.getElementById("username").value})
})
.done(function(data, textStatus, xhr){
console.log("done");
console.log(data); console.log(textStatus); console.log (xhr);
resolve(xhr.status);
})
.fail(function(data, textStatus, xhr){
console.log("fail");
console.log(data); console.log(textStatus); console.log (xhr);
reject(xhr.status);
});
}
);
编辑:日志打印“失败”,然后“Object { readyState: 4, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), catch: catch(), … }
”,然后在浏览器的检查功能的网络选项卡中显示“错误”和“未知”我看到请求以及响应它的状态代码。
我注意到在对应于在失败回调中打印“数据”的对象中存在以下字段:
即。奇怪的是,状态代码位于“state”字段内,而不是statusCode 1。我是否必须从“州”访问它?
答案 0 :(得分:-1)
有几种方法可以从ajax调用访问响应,例如参见: Get Http Status Code from an ajax response with jquery 希望这有帮助!