Reputation: 1365
i do not know how to handle 404 error on $.post()??
$.post(url, data, function(returnedData) {
it can handle only the success data but i want to handle the 404 error also in.i know how to do it with ajax but dont know with this function please help.
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]);
}
});
}
i bascially apply bindings when i get data but when i dont get data it doesnt go inside the success function and thats breaking my js.
Upvotes: 1
Views: 13456
Reputation: 3643
Read about statusCode
callback here
$.ajax({
url: "/page.htm",
type: "POST",
statusCode: {
404: function() {
alert("page not found");
}
}
})
Edit.
Can also be accieved with $.post
$.post(url, data, function(returnedData) {
//callback
}).fail(function(jqXHR, textStatus, errorThrown){
if(jqXHR.status == 404) {
}
});
Upvotes: 10
Reputation: 2959
You can use a global error handler:
$(document).ajaxError(function(e, xhr, settings, exception) {
});
Upvotes: 3