如何在get本身之外访问从xhrGet返回的数据? Firebug显示“json”对象有一个名为results的数组,它存储响应中的json对象,但是当我尝试访问它时它是null.那么:如何访问最后一个代码行上的接收数据?
var json = dojo.xhrGet({
url :'/disease_web/graphMlDownload/getEdgeInformation/', handleAs:"json",content : { edgeid : edgeId, graphname:this._canvas.path},
load:function(response){
return response;
}
});
console.log(json.ioArgs);
console.log(json.results);
最佳答案 默认情况下,dojo.xhrGet是异步调用的,因此console.log(json.results)为null,因为它在dojo.xhrGet之后运行,但在响应来自服务器之前运行.
var xhrGet = dojo.xhrGet({
url: "/some_rul",
handleAs: "json",
handle: function(response) {
console.info(2,'response',response);
console.info(3,'xhrGet.results[0]',xhrGet.results[0]);
}
});
console.info(1,xhrGet.hasOwnProperty('results'));
结果是:
1假
2响应 – [‘来自服务器的一些数据’]
3 xhrGet.results [0] – 与通过xhrGet访问的“响应”中的数据相同