同步XMLHttpRequest获取xml时出错

时间:2015-03-12 23:45:12

标签: jquery xml xmlhttprequest load

我正在尝试从openweathermap.org获取xml数据。所以我得到这样的网址:" http://api.openweathermap.org/data/2.5/weather?q=London,uk&mode=xml" (这个是用于测试)这个结果是天气的xml数据。所以url对我很好。

我想创建一个小型网络应用程序,向我展示我的城镇。首先,我这样做是为了得到xml:

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("GET","http://api.openweathermap.org/data/2.5/weather?q=London,uk&mode=xml", false); //here i get error notice
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

var firstRow = xmlDoc.getElementsByTagName('temperature');

这样可以正常我收到 xmlhttp.open 行中的错误消息。消息是这样的:

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看http://xhr.spec.whatwq.org/

现在这个问题有时我要求的xml没有被加载(所以我的数据是空的)。然后我也用debbuger检查它,在这种情况下,xmlhttp.open是下划线(带有上面的消息)和xmlhttp.send(),其中error是空请求。然后我刷新几次,然后获取数据。

知道这个错误信息是什么,如何解决? Tnx寻求帮助

1 个答案:

答案 0 :(得分:0)

在ajax API帮助的基础上,我做到了这一点:

$.ajax({
  url: "http://api.openweathermap.org...",
  type: 'GET',
  dataType: 'xml',
}).done(function(data){
  xmlDoc = data;
});

现在这似乎工作(没有错误信息),xmlDoc现在(当调试时)与以前相同的数据,当我使用xmlDoc = xmlhttp.responseXML时;