开发者

Access data from ajax success in complete?

Is there a way that I can access the data I receive during success so i can use it during the complete callback?

Or perhaps there is a way where i can assign multiple success functions?

What i need is, to allow success callback to be changed based on situation, but I need to always per开发者_Python百科form a dedicated function on success using the same data that was returned to the first function.

I suppose i can always setup my call like so, but i'm looking to see if there is a better way.

CallServer = function(options) {
  if(options.success) {
    var customSuccess = options.success;
    options.success = function(data) {
      defaultSuccess(data);
      customSuccess(data);
    }
  }
  $.extend(true, defaults, options);
  $.ajax(defaults);
}

EDIT: I have found my answer. I didn't realize that the xhr holds the data as the responseText. so the following gets me the same thing that gets returned as 'data' on success.

complete: function(xhr){dosomething(xhr.responseText);}

and that's it! Thanks


In jQuery, the success callback accepts the data as its first argument.

From the jQuery Documentation ( http://api.jquery.com/jQuery.ajax/ ) the argument list for the success callback is:

success(data, textStatus, jqXHR)

As far as I am aware, there is no built-in way to add multiple success callbacks, but you could easily dispatch any number of functions from a custom success callback.

Perhaps you could use a system like:

function customSuccess(data) {
    if (situation == "one way") {
        firstFunction(data):
    }
    else if (situation == "another way") {
        secondFunction(data);
    }
}


I have found my answer. I didn't realize that the xhr holds the data as the responseText. so the following gets me the same thing that gets returned as 'data' on success.

complete: function(xhr){dosomething(xhr.responseText);}

and that's it! Thanks

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜