0

我在这里有个问题。假设我有一些带有 jQ​​uery 的 Ajax,如下所示:

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

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

是否可以使用该 jqXHR 对象获取我的 $.ajax 调用的成功函数的返回值?如果是这样,我该怎么做?如果使用 jqXHR 对象无法做到这一点,有什么方法可以访问我的成功函数的返回值,而无需在 $.ajax 中设置 async: false?

请问有什么帮助吗?

4

2 回答 2

3

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

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

于 2012-01-27T21:11:08.167 回答
0

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

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

除了 ajax 回调之外,访问我所知道的数据的唯一其他方法,很酷的是,您可以在发送 ajax 请求后多次使用它,并且它总是会返回您从服务器。

于 2012-01-27T23:07:43.757 回答