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

29,951

Solution 1

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.

Solution 2

I think the 3rd parameter errorThrown in the error callback function

 error(XMLHttpRequest, textStatus, errorThrown)

is exactly to send the text error message from server.

So if on a server you set:

 Response.Status = 403;
 Response.StatusDescription = "Password is not correct";

on a client you get:

 textStatus => "error",
 errorThrown => "Password is not correct"

Server part for Asp.net MVC will be:

 return new HttpStatusCodeResult(403, "Password is not correct");

Solution 3

THe Message is a return from the actual server side function that you are querying in your ajax call.

That way you can get the error or any other info on whether or not the server side code did what it was supposed to do.

Say if you return a string "success"

msg.val() will equal "success"

hope that helps

Share:
29,951

Related videos on Youtube

aliadly
Author by

aliadly

I am a ASP.net/PHP web developer. Recently I have been involved with a Compact Framework project which explains my multiple CF related questions.

Updated on July 09, 2022

Comments

  • aliadly
    aliadly almost 2 years

    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.

    • Ricardo Gomes
      Ricardo Gomes over 14 years
      why is this getting downvoted?
    • Patrick Karcher
      Patrick Karcher over 14 years
      the parameter msg is teh XMLHttpRequest object jquery used to make the request. It doesn't matter if it's called msg or xhr or whatever, that's what the first (or only) parameter is. In the example where you got that, they should have used xhr or something besides msg, which is confusing. I suggest you change it. And yes, I don't know why the downvotes. It's a good question. I'll even out a down vote here . . .