Check out the following articles and see if they clarify your concerns
Ajax error descibed jQuery.ajax()
error
Type: Function( jqXHR jqXHR, String textStatus, String errorThrown ) A
function to be called if the request fails. The function receives
three arguments: The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a
string describing the type of error that occurred and an optional
exception object, if one occurred. Possible values for the second
argument (besides null) are "timeout", "error", "abort", and
"parsererror". When an HTTP error occurs, errorThrown receives the
textual portion of the HTTP status, such as "Not Found" or "Internal
Server Error." As of jQuery 1.5, the error setting can accept an array
of functions. Each function will be called in turn. Note: This handler
is not called for cross-domain script and cross-domain JSONP requests.
This is an Ajax Event.
Also one more article from the community:
https://stackoverflow.com/a/6265911/2289769
The PHP response header and data type should be the same as in the Ajax request. Requesting json, PHP should also return json otherwise ajax will fail triggering the error.
Some tutorial that you may check: AJAX Request Handler with PHP