Jquery 获取xml的同步XMLHttpRequest错误
我正在尝试从openweathermap.org获取xml数据。所以我得到的url是这样的:“(这是测试用的)结果是天气的xml数据。所以url对我来说很好 我不想创建一个小的网络应用程序,让我了解我的城市。首先,我这样做是为了获取xml:Jquery 获取xml的同步XMLHttpRequest错误,jquery,xml,xmlhttprequest,load,Jquery,Xml,Xmlhttprequest,Load,我正在尝试从openweathermap.org获取xml数据。所以我得到的url是这样的:“(这是测试用的)结果是天气的xml数据。所以url对我来说很好 我不想创建一个小的网络应用程序,让我了解我的城市。首先,我这样做是为了获取xml: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for
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已被弃用,因为它会对最终用户的体验产生有害影响。有关更多帮助,请检查
现在的问题是,有时我请求的xml没有加载(所以我的数据是空的)。然后我还使用debbuger检查它,在类似的情况下,xmlhttp.open是下划线(带有上面的消息),xmlhttp.send(),其中错误是空请求。然后我刷新几次,它就会得到数据
知道这个错误消息是什么吗?如何修复它?Tnx的帮助在ajax API的帮助下,我基本上做到了:
$.ajax({
url: "http://api.openweathermap.org...",
type: 'GET',
dataType: 'xml',
}).done(function(data){
xmlDoc = data;
});
现在这似乎起作用了(没有错误消息),xmlDoc现在(调试时)拥有与以前相同的数据,当时我使用xmlDoc=xmlhttp.responseXML 既然您使用的是jquery,那么根据您给帖子的标签,为什么不使用jquery的ajax API呢?在这种情况下,您可以使用异步调用,并使随请求调用的回调完成,回调对数据执行您需要的任何处理。您不理解此消息的哪一部分?
xmlhttp.open()
的第三个参数必须是true
才能使用异步XMLHttpRequest
并避免此消息。然后,您需要为异步响应而不是同步响应编写代码。有关工作示例,请参见。但是,正如ewh所说,使用jQuery的Ajax支持会简单得多。@ewh thx的建议,你能检查我发布的答案吗,如果这是可行的解决方案?Realy thx的帮助如果你得到了你所期望的,我想它是有效的:)