GDownloadUrl无法在Chrome上使用 [英] GDownloadUrl is not working on Chrome
问题描述
这是一个 Drupal 网站。我使用以下代码使用 GDownloadUrl
发送了一个Ajax请求。我从Google Maps JavaScript API版本2中获得了 GDownloadurl
方法:
GDownloadUrl(down_load_url,function(data){
var xml = GXml.parse(data);
});
这个 down_load_url
包含请求和数据变量将以XML形式获得响应。
然而,在Chrome中,这个数据变量不包含任何内容。在其他浏览器中,该功能可以正确地获取请求的数据。什么是Chrome的错误?
这位先生有一个使用GDownloadUrl的例子: http://googlemapsapi.blogspot.com/2007/02/gdownloadurl-update-better-error.html
您可以尝试在回调函数中添加responseCode参数,以查看Chrome是否由于某种原因出错。此示例适用于我的Chrome版本,因此请确保您正在运行最新版本。
以下是他的代码示例:
function load(){
if(GBrowserIsCompatible()){
var map = new GMap2(document.getElementById(map));
map.addControl(新的GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(37.4419,-122.1419),13);
//下载data.xml中的数据并将其加载到地图上。格式we
//期望的是:
//< markers>
//< marker lat =37.441lng = - 122.141/>
//< marker lat =37.322lng = - 121.213/>
//< / markers>
GDownloadUrl(data.xml,function(data,responseCode){
//为了防止导致数据为空或不良的HTTP错误,
//总是检查状态码是否相等到200之前处理数据
if(responseCode == 200){
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName(marker);
for(var i = 0; i< markers.length; i ++){
var point = new GLatLng(parseFloat(markers [i] .getAttribute(lat)),
parseFloat(markers [i] .getAttribute(lng)));
map.addOverlay(new GMarker(point));
}
} else if(responseCode == -1) {
alert(Data request timed out。Please try later。);
} else {
alert(请求导致错误,检查XML文件是可检索的。);
}
});
}
}
This is inside a Drupal site. I sent an Ajax request using GDownloadUrl
using the following code. I got this GDownloadurl
method from the Google Maps JavaScript API version 2:
GDownloadUrl(down_load_url, function(data) {
var xml = GXml.parse(data);
});
This down_load_url
has the request and the data variable will get the response as an XML.
However, in Chrome this data variable contains nothing. In other browsers this function gets the requested data correctly. What is the wrong with Chrome?
This gentleman has an example of using GDownloadUrl at: http://googlemapsapi.blogspot.com/2007/02/gdownloadurl-update-better-error.html
You might try adding the responseCode parameter to your callback function to see if Chrome is erroring for some reason. This example works in my version of Chrome, so make sure you are running the latest version.
Here is his code example:
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
// Download the data in data.xml and load it on the map. The format we
// expect is:
// <markers>
// <marker lat="37.441" lng="-122.141"/>
// <marker lat="37.322" lng="-121.213"/>
// </markers>
GDownloadUrl("data.xml", function(data, responseCode) {
// To ensure against HTTP errors that result in null or bad data,
// always check status code is equal to 200 before processing the data
if(responseCode == 200) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
map.addOverlay(new GMarker(point));
}
} else if(responseCode == -1) {
alert("Data request timed out. Please try later.");
} else {
alert("Request resulted in error. Check XML file is retrievable.");
}
});
}
}
这篇关于GDownloadUrl无法在Chrome上使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!