Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取xml的同步XMLHttpRequest错误_Jquery_Xml_Xmlhttprequest_Load - Fatal编程技术网

Jquery 获取xml的同步XMLHttpRequest错误

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

我正在尝试从openweathermap.org获取xml数据。所以我得到的url是这样的:“(这是测试用的)结果是天气的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已被弃用,因为它会对最终用户的体验产生有害影响。有关更多帮助,请检查

现在的问题是,有时我请求的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的帮助如果你得到了你所期望的,我想它是有效的:)