Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery $.ajax statusCode Else

Tags:

In a jquery Ajax call I am currently handling statusCode of 200 and 304. But I also have "Error" defined" To catch any Errors that could come back.

If there is a validation message related we return the status code of 400 - Bad Request.

This then falls into the "Error" function before falling into the statusCode "400" function I had defined. Which means two actions happen.

Ideally I would like to not define "Error" and "Success" and only define "statusCode" But what I need is to have a "Else" so that I don't need to declare every statusCode that exists only the 2-3 I want to handle differently.

$.ajax({         type: 'POST',         contentType: "application/json",         url: "../API/Employees.svc/" + EmployeeId + "/Company/" + CompanyId,         data: jsonString,         statusCode: {             200: function () { //Employee_Company saved now updated                  hideLoading();                 ShowAlertMessage(SaveSuccessful, 2000);                 $('#ManageEmployee').dialog('close');              },             304: function () { //Nothing to save to Employee_Company                  hideLoading();                 $('#ManageEmployee').dialog('close');                  if (NothingToChange_Employee) {                     ShowAlertMessage(NothingToUpdate, 2000);                 } else {                     ShowAlertMessage(SaveSuccessful, 2000);                 }             }         },         error: function (XMLHttpRequest, textStatus, errorThrown) {             AjaxError(XMLHttpRequest, textStatus, errorThrown);         }     }); 
like image 221
Steve Avatar asked Apr 06 '12 10:04

Steve


1 Answers

Since the "complete" event is always fired you could simply get the status code from there and ignore the success and error functions

complete: function(e, xhr, settings){     if(e.status === 200){      }else if(e.status === 304){      }else{      } } 
like image 65
Nicola Peluchetti Avatar answered Mar 19 '23 03:03

Nicola Peluchetti