views:

2152

answers:

4

Hi all

i'm using Jquery's load() method for reterive some data when user click on button. Then show the result in . It is ok.

But the problem is i don't know how to catch error in load() when error occure while data reteriving.

Please help me.

Thanks

+1  A: 

load() offers a callback.

Callback.
The function called when the ajax request is complete (not necessarily success).

This is how its done IIRC. (haven't tested it)

$("#feeds").load("feeds.php", {limit: 25}, 
    function (responseText, textStatus, XMLHttpRequest) {
        // XMLHttpRequest.responseText has the error info you want.
        alert(XMLHttpRequest.responseText);
});
Ólafur Waage
+1  A: 

Besides passing a callback to the load() function as Ólafur Waage suggests, you can also register "global" error handlers (global as in global for all ajax calls on the page).

There are at least two ways to register global Ajax error handlers :

Register just the error handler with ajaxError():

$.ajaxError(function(event, request, settings) {
      alert("Oops!!");
});

Or, use ajaxSetup() to set up an error handler and other properties at the same time:

$.ajaxSetup({
    timeout: 5000,
    error: function(event, request, settings){
        alert("Oops!");
    }
});
matt b
+4  A: 

load() documentation.

Just a little background on how a load error happens...

$("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, 
    function (responseText, textStatus, req) {
        if (textStatus == "error") {
          return "oh noes!!!!";
        }
});

Edit: Added a path other than the root path as requested by comments.

altCognito
thanks altCongnito.it is work!btw,can i ask another related question?another problem is file path! I use asp.net.i write load() code in Master page. parameter Url is like feedsx.aspx.it is work when content pages are under root folder.but if content pages are under other subfolder not work. help
thanks for the link to the jquery docs. I didn't know they even existed!
David Dombrowsky
A: 

Electric toolbox has an article called "Loading content with jQuery AJAX and dealing with failures" that appears to answer your question.

Apparently the callback function that you specify gets passed the response, status, and XmlHttpRequest object, allowing you to determine the status of your ajax request and handle the condition accordingly.

vezult