这样做:
var json = (function () { var json = null; $.ajax({ 'async': false, 'global': false, 'url': my_url, 'dataType': "json", 'success': function (data) { json = data; } }); return json;})();主要问题是
$.getJSON它将异步运行,因此,即使在其
success回调触发之前,您的Javascript也会经过调用它的表达式之后,因此无法保证您的变量将捕获任何数据。
请特别注意
'async': false上述ajax调用中的选项。该手册说:
默认情况下,所有请求都是异步发送的(即默认情况下设置为true)。如果需要同步请求,请将此选项设置为false。请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作。



