ajax中的refrer函数名,失败时反向回调

refrer function name in ajax, reverse callback on fail

本文关键字:回调 失败 中的 refrer 函数 ajax      更新时间:2023-09-26

我不知道如何实现这一点。我使用jQuery1.9进行ajax回调。

我有一个函数,比方说:

function a (param){
    //calling a function this will perform ajax
    data = performAjax(param, url, etc);
    // render response
    renderResponse(data);
}

我们正在执行ajax函数中的ajax。问题是当ajax失败时,它会执行ajaxError功能。我在div中放了一条消息,请再次刷新。

但是如何在ajaxError函数中获取函数a及其所有参数?这样我就可以放一个链接来再次刷新。

不确定我是否理解正确,但它是这样的:

function performAjax() {
    return $.ajax({
        ....
    });
}
var lastFailedFunction;
function a (param){
    var args = arguments;
    //calling a function this will perform ajax
    performAjax().then(function(data) { // on success
        // render reponse
        renderResponse(data);
    }, function() { // on failure
        lastFailedFunction = function() {
            a.apply(a, args);
        };
        // now you can call lastFailedFunction() to try again
    });
}

当ajax调用失败时,它会将失败的函数调用存储到lastFailedFunction。所以你可能会在其他地方显示这条消息:

<div>Function A failed, <a href="#" onclick="lastFailedFunction(); return false;">click here</a> to try again</div>

使用ajax的error回调,可以获得错误消息

function a(param) {
    var performAjax = $.ajax({
      type: "",
      url: "",
      data: "",
      success: function(msg){
           //success msg
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
         //can access param of fun a and the error message
        //append it to the body
        $('body').append('<div>'+param+' error: '+errorThrown+'</div>');
      }
    });
}