Javascript 如何使用状态代码200、404、300(jquery内部如何完成和失败工作)
我通过使用jQuery学习了Ajax。我认为jQuery使用状态代码实现,但对200、404和300等状态代码了解不多 使用jQuery Ajax,其简单功能如下:Javascript 如何使用状态代码200、404、300(jquery内部如何完成和失败工作),javascript,jquery,Javascript,Jquery,我通过使用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 ) {
$.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。如果您查看一下实现,您会发现以下代码行:
// 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]);
}
...
}
//完成所有操作时的回调
功能完成(状态、NativeStatus文本、响应、标题){
...
//确定是否成功
isSuccess=status>=200&&status<300 | | status==304;
...
//成功/错误
如果(isSuccess){
resolveWith(callbackContext,[success,statusText,jqXHR]);
}否则{
deferred.rejectWith(callbackContext[jqXHR,statusText,error]);
}
...
}
因此,答案是200-300和304范围内的代码被认为是成功的,而其他所有代码都是失败的。基于它们解析(
done
,success
方法将被调用)或拒绝(fail
)延迟对象。如果您想知道有哪些状态代码,请检查:
jQuery将很好地处理这些代码。除了编写的代码之外,您还可以处理特定的状态代码:
$.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@Pandu,查看这个url@pandu,你完全改变了你的问题!!你原来的问题是一个重复的问题,并已收到4票接近。如果你想问一个不同的问题,你应该再加一个问题。现在你冒着这个问题被关闭的风险,因为它是一个与之无关的问题的副本。总而言之,你把事情弄得很混乱。谢谢。我会调查的。这是一个很好的补充。
$.ajax({
url: "update.php",
type: "POST",
})
.statusCode({
401: function() { alert( 'Unauthorized' ); },
200: function() { alert( 'OK!'); }
});