获取$ .ajax jquery成功返回的数据

时间:2012-01-27 21:06:51

标签: javascript ajax jquery jqxhr

我在这里有一个问题。假设我有一些像jQuery这样的Ajax:

var jqXHR = $.ajax({
       type: 'POST', 
       success: function(data) {
             if(data != true)
             {
                  return false;
             }
       }
});

我知道$ .ajax返回一个jqXHR对象。我的问题如下:

是否可以使用该jqXHR对象获取$ .ajax调用的成功函数的返回值?如果是这样,我该怎么做?如果使用jqXHR对象是不可能的,有没有办法可以访问我的成功函数的返回值WITHOUT SETTING async:false in $ .ajax?

请帮忙吗?

2 个答案:

答案 0 :(得分:3)

如果不将async设置为false,则无法进行此操作。我建议不要将其设置为false,因为它会在服务器响应到来之前完全停止页面。有时它甚至会挂起浏览器,如果连接速度很慢或服务器由于升沉操作需要时间来响应。

您可以在计划在外部执行的ajax成功处理程序中执行代码。

答案 1 :(得分:0)

有可能 - 在某种程度上 - 返回的jqXHR也是一个延迟对象,所以你可以这样做

jqXHR.then(function(data) { ... });

唯一可以访问我所知道的ajax回调的数据的唯一方法,很酷的是你可以在发送ajax请求后多次使用它并且它总会返回你已经存在的数据从服务器收到。