一尘不染

如何阻止ajax调用(我希望它阻止)

ajax

Ajax使用回调,因为它是A同步的。

我希望对远程URL块的调用直到出现一些答案为止 ,就像在Ajax中一样,但是没有异步部分,或者我要说要进行JAX调用。

是否有任何技术可以使以下事情发生(使用JQuery)(…使用JQuery或其他解决方案):

function get_data() {
    $.ajax({
        type : "POST",
        url : "/foo"
    }).done(function(data, textStatus, jqXHR) {
        return data;
    }).fail(function(jqXHR, textStatus) {
        return null;
    });
}

var data = get_data();
// process `data`

我只是想知道-想学习。

实际上,有时会阻塞直到回复合适为止。我并不是说要浏览器阻止,而只是脚本运行时。


阅读 345

收藏
2020-07-26

共1个答案

一尘不染

您可以async : false在使用jQuery时简单地设置布尔值(请检查docs)。注意:
从jQuery 1.8开始,不建议使用async:false和jqXHR($ .Deferred); 您必须使用complete / success /
error回调。

如果您不想使用jQuery或想了解引擎盖下发生的事情,请阅读此书

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

不要怀疑为什么您不希望它异步…

2020-07-26