error handling with .post()

前端 未结 3 842
囚心锁ツ
囚心锁ツ 2021-01-31 13:50

I have to modify a project written by someone else. Because the code is a mess I can\'t really change this $.post() (or replace it by $.ajax()). What I need to do, is to know if

相关标签:
3条回答
  • 2021-01-31 14:28

    You can use $.ajax() ($.post is a shortcut that ends up calling it anyway), and define the error callback.

    Or, if you really do not want to do that, call

    $.ajaxError(function(){
       //error handler
    })
    

    before that $.post

    0 讨论(0)
  • 2021-01-31 14:30

    Define the error callback immediately after the post. Note the semi-colon placement only at the end.

    $.post('balbal.html', json, function(data) {
        // ... my code ...
    })
    .fail(function(response) {
        alert('Error: ' + response.responseText);
    });
    

    http://api.jquery.com/deferred.fail/

    For older versions of jQuery (pre-1.8) Use .error instead with the same syntax.

    0 讨论(0)
  • 2021-01-31 14:42

    There's a couple of ways to do it, but if you're not getting the error response available through the returned JSON data object, you can use $.ajaxSetup() to define defaults for all ajax calls through jQuery. Even though the $.post() method doesn't specify an error handler or callback in and of itself, the $.ajaxSetup() method will capture any ajax faults and execute the function you define for it.

    Alternatively, there is also an $.ajaxError() function that will do the same sort of thing.

    Note that this will not work if your JSON response is returned correctly but with a server-side error code. If you want to capture these sorts of cases, you might be best to look for them using the $.ajaxComplete() method

    0 讨论(0)
提交回复
热议问题