过去我总是使用getJson函数中的回调函数来处理获取的数据,但是由于我想将获取的数据保存为变量,以防止再次获取它,我已经运行了一些奇怪的问题。尝试以下代码时,我开始在firebug中收到此错误; Permission denied for <http://localhost> to get property XMLHttpRequest.channel
在没有回调函数的情况下尝试执行此操作是否错误?
function fetch(){
var returndata = $.getJSON( 'http://localhost/api/get/1' );
formatDataset(returndata);
}
function formatDataset(data){
var row = '';
$.each(data, function(){
row += this.name + '<br>';
});
$('#myDiv').html(row);
}
答案 0 :(得分:1)
你的代码错误
var returndata = $.getJSON( 'http://localhost/api/get/1' );
ajax是异步调用,因此它将启动该进程并继续,您不能将其用作返回类型。
如果你想完成任务,可以在getfson的成功处理程序中编写代码
答案 1 :(得分:0)
是的,你问的回调问题是正确的。 $ .getJSON函数返回XMLHttpRequest而不是数据。所以尝试类似的事情:
var returndata;
function fetch(){
if (!returndata) {
$.getJSON( 'http://localhost/api/get/1', function(data) {
returndata = data;
formatDataset(returndata);
});
return;
}
formatDataset(returndata);
}