上图说明obj对象取到了responseText的值。
但这样做为什么不能返回值??
且不说你的异步就不能这样返回值,你的return
返回很明显是xmlhttp.onreadystatechange
的值,而不是你的loadXMLDoc
函数的值。针对异步的问题你要学会使用回调函数。回调函数给我的感觉就是一个一个函数往里面套,我给你写个例子:
function loadXMLDoc(callback) {
callback = callback || function() {};
...... //这里是xmlhttp的一些定义
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
callback(JSON.parse(xmlhttp.responseText));
}
...... //这里是xmlhttp的其它操作
}
loadXMLDoc(function(res){
document.write(res[1].week);
});
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
ajax
是异步,你后面那么做,还没执行回调函数获取responseText
,obj
是取不到值的。//好像这样表述不对,要取到值,最好是在确认回调执行了才好。另外,你写的
return
是在一个function
里面,return不到外部去的。