如何在jquery.post中处理404错误

roh*_*ora 1 ajax jquery post .post

我不知道如何处理$ .post()上的404错误?

$.post(url, data, function(returnedData) {
Run Code Online (Sandbox Code Playgroud)

它只能处理成功数据,但我也想处理404错误.我知道如何用ajax做但不知道这个功能请帮忙.

    function returnData(url,data,type){
        $.post(url, data, function(returnedData) {
        if(type == "contacts")
        {   
        ko.applyBindings(new ContactsViewModel(returnedData,"#KnockOutContacts",url,data),$("#KnockOutContacts")[0]);   
        ko.applyBindings(new ContactsViewModel(returnedData,"#ContactDetails",url,data),$("#ContactDetails")[0]);   
        }
        else if(type == "logs")
        {
        alert(returnedData);
        alert(1);
        ko.applyBindings(new LogsViewModel(returnedData,url,data),$("#KnockOutLogs")[0]);   
        }
        else if(type == "sms")
        {
            ko.applyBindings(new SmsViewModel(returnedData,"#KnockOutSmsData",url,data),$("#KnockOutSmsData")[0]);  
            ko.applyBindings(new SmsViewModel(returnedData,"#KnockOutSms",url,data),$("#KnockOutSms")[0]);  
        }
        else if(type == "calendar")
        {
        ko.applyBindings(new CalendarViewModel(returnedData,"#KnockOutCalendar",url,data),$("#KnockOutCalendar")[0]);   
        }
        else if(type == "search")
        {
        ko.applyBindings(new SearchViewModel(returnedData,"#searchbox",url,data),$("#searchbox")[0]);   
        }
        else if(type == "location")
        {
        ko.applyBindings(new LocationViewModel(returnedData,"#KnockOutMaps",url,data),$("#KnockOutMaps")[0]);   
        }
        else if(type == "photos")
        {
        ko.applyBindings(new PhotosViewModel(returnedData,"#photogallary",url,data),$("#photogallary")[0]); 
        ko.applyBindings(new PhotosViewModel(returnedData,"#PhotosDown",url,data),$("#PhotosDown")[0]); 
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我基本上应用绑定当我得到数据,但当我没有得到数据,它不会进入成功函数,这就是打破我的js.

Rob*_*cke 7

在这里阅读statusCode回调

$.ajax({
    url: "/page.htm",
    type: "POST",
    statusCode: {
        404: function() {
          alert("page not found");
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

编辑.

也可以接受 $.post

$.post(url, data, function(returnedData) {
    //callback
}).fail(function(jqXHR, textStatus, errorThrown){
    if(jqXHR.status == 404) {

    }
});
Run Code Online (Sandbox Code Playgroud)