jQuery getJSON не будет работать на кросс-домене - PullRequest
1 голос
/ 02 июля 2011

Я пытаюсь использовать REST API Google Maps для преобразования набранного адреса в координаты. Для этого я использую функцию jJuery getJSON, так как она использует собственный вызов JSONP.

Хотя это не сработает, просто оно не достигает успеха, поэтому предупреждение никогда не вызывается.

$("#makeCords").click(function(){
    straat = $('#straat').val();
    stad = $('#Stad').val();
    land = $('#Country').val();
    if(straat == "" || stad == "" || land == ""){
        alert("Onvoldoende gegevens! Vul straat, stad en land aan voor het gebruik van de ´bereken coordinaten´ functie.");
    }else{
        $.getJSON("http://maps.google.com/maps/api/geocode/json?callback=?",
        {
            adress: straat +", " + stad +", " + land,
            sensor: "false"
        },
          function(data) {
              alert(data);
          });
    }
});

Ответы [ 4 ]

3 голосов
/ 02 июля 2011

API геокодирования Карт Google не поддерживает JSON-P;он будет игнорировать ваш параметр callback, поэтому междоменный JSON-P не будет работать.

Вместо этого вы должны использовать официальную библиотеку JavaScript Карт Google .Внутренне библиотека использует JSON-P для передачи информации (поскольку почти единственный способ выполнять междоменные запросы), но этот URL-адрес зарезервирован только для использования официальной библиотекой.

0 голосов
/ 02 июля 2011

Попробуйте jquery jsonp:

$.ajax({
   type: "GET",
   url: "http://url",
   dataType: "jsonp" ,
   success: function (data) {

   }
});
0 голосов
/ 02 июля 2011

Разве это не своего рода безопасность, когда javascript (в данном случае jquery) никогда не будет получать или публиковать данные за пределами своего домена (по крайней мере, насколько я знаю, javascript не может post или * 1002) * кросс-домены)? Вы можете использовать локальный php-скрипт, собирающий информацию о json с сервера google по curl, и отправлять свой запрос get в этот локальный скрипт. Я бы попробовал этот способ ...

Другим способом было бы использовать API Google Maps для JavaScript. Вы можете использовать функции геокодирования из этого API для получения широты и долготы по заданному адресу. Так что вам не нужно делать какие-либо сообщения или сообщения ...

0 голосов
/ 02 июля 2011

попробуйте добавить & format = json к вашему get jason url и chaneg & callback =? & jsoncallback =?

...