Javascript 如何使用状态代码200、404、300(jquery内部如何完成和失败工作)

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 ) {

我通过使用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。

如果您查看一下实现,您会发现以下代码行:

// 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!'); }
});