我通过使用jQuery学习了Ajax。我认为jQuery实现了使用状态代码,但对200,404和300等状态代码了解不多。
使用jQuery Ajax,其简单如下:
$.ajax({
url: "update.php",
type: "POST",
data: customObj
})
.done(function( data ) {
alert("data saved succesfully");
})
.fail(function( data ) {
alert( "failed to update data" );
});
有人可以解释如何使用这些状态代码200,404和300.
答案 0 :(得分:8)
如果你看一下$.ajax实现,你会发现这些代码行:
// Callback for when everything is done
function done(status, nativeStatusText, responses, headers) {
...
// Determine if successful
isSuccess = status >= 200 && status < 300 || status === 304;
...
// Success/Error
if (isSuccess) {
deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);
} else {
deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);
}
...
}
所以答案是200-300和304范围内的代码被认为是成功的,其他一切都是失败的。根据他们解决(done
,success
方法将被调用)或拒绝(fail
)延迟对象。
答案 1 :(得分:6)
除@dfsq所写的内容外,您还可以处理特定的状态代码:
$.ajax({
statusCode: {
404: function() {
alert( "page not found" );
}
}
});
或延期:
$.ajax({
url: "update.php",
type: "POST",
data: customObj
})
.fail(function( jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 403) {
alert( "forbidden" );
}
});
或:
$.ajax({
url: "update.php",
type: "POST",
})
.statusCode({
401: function() { alert( 'Unauthorized' ); },
200: function() { alert( 'OK!'); }
});
答案 2 :(得分:0)