【问题标题】:get data returned inside success of $.ajax jquery获取 $.ajax jquery 成功返回的数据
【发布时间】:2012-02-20 20:12:55
【问题描述】:

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

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

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

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

有什么帮助吗?

【问题讨论】:

  • async: false 是敌人。躲开它。使用带有成功回调的异步请求

标签: javascript ajax jquery jqxhr


【解决方案1】:

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

您可以在ajax 的成功处理程序中执行您的代码,您计划在外面执行此操作。

【讨论】:

  • 如果我使用 async: false,我将不再使用 Ajax。我不想那样做
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2014-07-07
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多