循环内问题的JavaScript
我需要从服务器获得4个请求,我已经以这种方式存储了所有这4个URL。有关信息,请参阅原始url() 这是调用my getTime.php并检索结果 为此,我为in-loop创建了这个,但它只打印了4次的一次intead?我怎样才能发出呼叫4请求循环内问题的JavaScript,javascript,Javascript,我需要从服务器获得4个请求,我已经以这种方式存储了所有这4个URL。有关信息,请参阅原始url() 这是调用my getTime.php并检索结果 为此,我为in-loop创建了这个,但它只打印了4次的一次intead?我怎样才能发出呼叫4请求 for(zone in nationZone ){ if (window.XMLHttpRequest){ zone=new XMLHttpRequest(); }else{ zone=new Active
for(zone in nationZone ){
if (window.XMLHttpRequest){
zone=new XMLHttpRequest();
}else{
zone=new ActiveXObject("Microsoft.XMLHTTP");
}
zone.onreadystatechange=function() {
if(zone.readyState==4 && zone.status==200){
alert(zone.responseText);
}
}
zone.open("GET",nationZone[zone],true);
zone.send();
}
我不介意使用包含附加第三方库的解决方案,因为循环变量和XHR使用相同的名称。不要那样做
编辑:另外,这个问题有jQuery标记,但您没有使用jQuery。不要做自己的XHR工作,而是通过$.ajax或$.get使用jQuery的ajax实现。也可以考虑使用JSONP,如果远程服务器支持它。 如果您使用jQuery,可以尝试这个,但是我怀疑它是否有效,因为不允许跨域Ajax。
var nationZone = {
getNewYorkLocalTime : 'getTime.php?lat=40.7143528&lan=-74.0059731',
getLondonLocalTime : 'getTime.php?lat=51.5001524&lan=-0.1262362',
getChennaiLocalTime : 'getTime.php?lat=13.060422&lan=80.249583',
getBangaloreLocalTime:'getTime.php?lat=12.9715987&lan=77.5945627'
}
$.each(nationZone , function(key, value){
$.get(value, function(response){
alert(response);
});
});
if/else块中的
区域
变量正在覆盖for循环中的区域
。因此,在循环完成第一次迭代时,只有一个区域
对象要处理
在函数中使用其他变量名。该行:
`zone.open("GET",nationZone[zone],true);`
应该说
`newZoneVariable.open("GET", nationZone[zone], true);`
其中newZoneVariable是循环体中使用的var。可能重复的虽然这是真的,但这不是唯一的问题,更改名称也不能解决问题。
`newZoneVariable.open("GET", nationZone[zone], true);`