这是在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有什么问题?
答案 0 :(得分:2)
这位先生有一个使用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(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.");
}
});
}
}