GDownloadUrl не работает на Chrome - PullRequest
0 голосов
/ 22 августа 2011

Это внутри Drupal сайта. Я отправил запрос Ajax, используя GDownloadUrl, используя следующий код. Я получил этот GDownloadurl метод из Google Maps JavaScript API версии 2:

GDownloadUrl(down_load_url, function(data) {
    var xml = GXml.parse(data);
});

У этого down_load_url есть запрос, и переменная данных получит ответ в виде XML.

Однако в Chrome эта переменная данных ничего не содержит. В других браузерах эта функция корректно получает запрошенные данные. Что не так с Chrome?

1 Ответ

2 голосов
/ 23 августа 2011

У этого джентльмена есть пример использования 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.");
      }
    });
  }
}
...