jQuery $.ajax() function's error message source

ajax, error-handling, jquery

Solution

From the jquery documentation:

`error(XMLHttpRequest, textStatus, errorThrown) Function`

A function to be called if the request fails. The function is passed three arguments: - The 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", "notmodified" and "parsererror". This is an Ajax Event.

When you indicate just one parameter, it will be the `xmlHttpRequestObject`. You can get some good information from that. Sadly, most documentation out there doesn't have you set this up correctly. A good default template is:

error:function (xhRequest, errorText, thrownError)

Some good info you can get from xhRequest are:

- `.status` : 404: "not found", 500: "server error". This can sometimes be a big help.

- `.responseText` is information from the server, often useless in the case of an error but sometimes can be helpful.

The second value, a string, is sometimes helpful. Ah, I guess the possible values are mentioned in the documentation.

The 3rd parameter, whenever I checked it out, has always been undefined. I don't think it's ever useful.

Problem

In the case of failure, the code goes something like: ``` error: function(msg) ``` where does the `msg` come from? EDIT: I am using this function ($ajax) to call a WEB SERVICE. So if whoever voted this down could explain to me where msg comes from that would be great! Do I set it in web service? If so, how? Please don't copy and paste the definitions.

Original source