ACP*_*ACP 100 jquery asynchronous getjson
是否可以async: false在调用时设置$.getJSON()以便调用阻塞而不是异步?
Nic*_*ver 152
您需要$.ajax()同步使用它来进行调用,如下所示:
$.ajax({
url: myUrl,
dataType: 'json',
async: false,
data: myData,
success: function(data) {
//stuff
//...
}
});
Run Code Online (Sandbox Code Playgroud)
这将匹配当前使用$.getJSON()如下:
$.getJSON(myUrl, myData, function(data) {
//stuff
//...
});
Run Code Online (Sandbox Code Playgroud)
vel*_*lja 44
两个答案都错了.您可以.你需要打电话
$.ajaxSetup({
async: false
});
Run Code Online (Sandbox Code Playgroud)
在你的json ajax电话之前.并且您可以在调用retuns后将其设置为true(如果您希望它们异步,则页面上还有其他ajax用法)
web*_*dev 17
我想你们两个都是对的.后面的答案工作正常但它就像设置一个全局选项,所以你必须做以下事情:
$.ajaxSetup({
async: false
});
//ajax call here
$.ajaxSetup({
async: true
});
Run Code Online (Sandbox Code Playgroud)
就我而言,Jay D是对的.我必须在通话前加上这个.
$.ajaxSetup({
async: false
});
Run Code Online (Sandbox Code Playgroud)
在我以前的代码中,我有这个:
var jsonData= (function() {
var result;
$.ajax({
type:'GET',
url:'data.txt',
dataType:'json',
async:false,
success:function(data){
result = data;
}
});
return result;
})();
alert(JSON.stringify(jsonData));
Run Code Online (Sandbox Code Playgroud)
它很有用.然后我改为
var jsonData= (function() {
var result;
$.getJSON('data.txt', {}, function(data){
result = data;
});
return result;
})();
alert(JSON.stringify(jsonData));
Run Code Online (Sandbox Code Playgroud)
警报未定义.
如果我添加这三行,警报会再次显示数据.
$.ajaxSetup({
async: false
});
var jsonData= (function() {
var result;
$.getJSON('data.txt', {}, function(data){
result = data;
});
return result;
})();
alert(JSON.stringify(jsonData));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
114993 次 |
| 最近记录: |