Google Maps API — Не можете использовать Ajax? Даже с json?

#javascript #jquery #json #google-maps #google-maps-api-3

#javascript #jquery #json #google-карты #google-maps-api-3

Вопрос:

Я пытался использовать Google maps API в некоторых jQuery ajax, однако, похоже, я не могу этого сделать, потому что это междоменный, хотя я использую json?

Почему это? Что я должен сделать, чтобы решить эту проблему?

 $.ajax({
    type: "GET",
    url: 'http://maps.googleapis.com/maps/api/geocode/json?sensor=falseamp;address=405 Lexington Avenue Manhattan NY',
    error: function(request, status) {
        alert('fail');
    },
    success: function(data, textStatus, jqXHR) {
        alert('success');
    }
});
  

Спасибо!

Ответ №1:

Возврат содержимого в формате json не исключает междоменных ограничений. (Возможно, вы путаете json и jsonp здесь.)

Вы можете использовать script, как заметил другой человек, но я бы рекомендовал вместо этого переключиться на javascript api. Этот, вероятно, предназначен для использования в коде на стороне сервера.

Комментарии:

1. Что делает javascript api, что позволяет ему выполнять междоменный вызов?

2. @DutrowLLC Я бы предположил, то же самое с jsonp 🙂

3. @DutrowLLC Версия JS, кажется, описана здесь code.google.com/apis/maps/documentation/javascript /…

Ответ №2:

Правильно, междоменные вызовы ajax не разрешены. Вместо этого создайте элемент «script» на странице с src, установленным для этого URL.

Вы также можете использовать $.getScript() — http://api.jquery.com/jQuery.getScript /

Комментарии:

1. Я лично использую $.getScript() в этих случаях, поскольку он поддерживает обратный вызов.

2. Мое решение не будет работать. Я не понял, что он пытался получить JSON. Я предположил, что он пытался загрузить библиотеку map, которая будет работать с $.getScript ().