If you look at $. ajax implementation, you will find these lines of code:
function done(status, nativeStatusText, responses, headers) {
...
isSuccess = status >= 200 && status < 300 || status === 304;
...
if (isSuccess) {
deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);
} else {
deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);
}
...
}
, , 200-300 304 , - . , (done, success ) (fail) .