There is a similar question with good answer here:
JQuery Ajax - How to Detect Network Connection error when making Ajax call
In short, you can check the "readyState" like:
error: function(XMLHttpRequest) {
if (XMLHttpRequest.readyState == 0) {
// Network error (Connection refused, Access denied, etc.)
}
else {
// some other error (HTTP error, etc...)
}
}
Here is a full working example for my cases:
var params = {name: 'John doe', age: 23};
// Make POST request to the server
$.post('/some/url/to/post', params, function (response) {
if (!response.result) {
// I have custom response format - contains validation errors, etc... Sample below:
//var content = $.isPlainObject(response) ? response.message : response;
//alert(content, 'Error saving data: Details' + content);
}
else {
// All is fine and data is saved
}
}).fail(function(jqXHR) {
var errorMessage = jqXHR.readyState == 0 || !jqXHR.responseText
? 'Network error - please check your internet connection or firewalls'
: jqXHR.responseText;
alert('Error saving data: Details' + errorMessage + );
});