我在这里有一个问题。假设我有一些像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?
请帮忙吗?
答案 0 :(得分:3)
如果不将async
设置为false
,则无法进行此操作。我建议不要将其设置为false,因为它会在服务器响应到来之前完全停止页面。有时它甚至会挂起浏览器,如果连接速度很慢或服务器由于升沉操作需要时间来响应。
您可以在计划在外部执行的ajax
成功处理程序中执行代码。
答案 1 :(得分:0)
有可能 - 在某种程度上 - 返回的jqXHR也是一个延迟对象,所以你可以这样做
jqXHR.then(function(data) { ... });
唯一可以访问我所知道的ajax回调的数据的唯一方法,很酷的是你可以在发送ajax请求后多次使用它并且它总会返回你已经存在的数据从服务器收到。