GDownloadUrl无法在Chrome上运行

时间:2011-08-22 11:55:03

标签: javascript ajax google-chrome google-maps-api-2

这是在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有什么问题?

1 个答案:

答案 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.");
      }
    });
  }
}