I’ve been checking to make sure my AJAX requests are successful by doing something like this:
$.post("page.php", {data: stuff}, function(data, status) {
if(status == "success") {
//Code here
}
else {
//Error handling stuff
}
});
Is checking the status variable the best way to go about doing this, or is there a better way to make sure the request actually went through? I’m considering a “successful” request to be a request that hits the page I’m posting to successfully without timing out (if the server was down and an AJAX request was made right before it went down as an example) or returning any kind of 404 or 500 error.
By calling
$.postthat way, you automatically pass only in asuccess handlerfunction.If something on the request went wrong, this method is not even executed.
To have more control either use
$.ajax()directly, or pass in fail handlers. That could look likeThe same thing using
.ajax():You can even pass more ajax event handler to
$.ajax, likebeforeSendto modify/read XHR headers orcompleteto have a handler which fires either way (error or not) when the requests finished.