我下面有这段代码,它应该返回调用的结果。我需要同步执行此操作,以便我知道一切都很好,但它似乎不起作用。我究竟做错了什么?
/* jQuery library:
* http://code.jquery.com/jquery-1.9.1.min.js
*/
function getJSON(url){
var result;
$.getJSON(url, { async: false, success: function(data) {
result = data;
alert(data); // **Edit**: also undefined
}});
alert(result); // undefined
return result;
}
getJSON 不支持 async:false
getJSON has no async: false
选项。你必须使用ajax为了那个原因。
根据文档,getJSON
相当于:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
...您可以轻松地添加一个async: false
选项(目前,请注意 jQuery 将放弃对此的支持)。
我需要同步执行此操作,以便我知道一切都很好
您不需要同步执行任何操作来“知道一切都很好”,异步处理结果(无论是“好”还是错误)是完全可能(并且正常)的。
在对您的问题的评论中,您写道:
jsonp?这是我正在使用的代码。
JSON-P不等于JSON (and getJSON
除非你有,否则不会执行 JSON-Pcallback=?
或类似的 URL),而 JSON-P 是本质上异步。与真正的 ajax 调用不同XMLHttpRequest
,不可能让JSON-P同步。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)