используйте $.getJSON для получения данных из API геокодирования Google, верните «Uncaught SyntaxError»

я получил ошибку "Uncaught SyntaxError: Unexpected token:".

почему и как справиться с этой ошибкой?

Благодарность!

$.getJSON("http://maps.google.com/maps/api/geocode/json?latlng=39.971277199999996,116.4864269&language=zh-CN&sensor=false&callback=?");

вы можете открыть эту страницу и увидеть консоль: http://jsbin.com/ugoraw/1

возврат json, как это,

{
   "results" : [
Uncaught SyntaxError: Unexpected token :
      {
         "address_components" : [
            {
               "long_name" : "16号",
               "short_name" : "16号",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "将台西路",
               "short_name" : "将台西路",
               "types" : [ "route" ]
            },
            ... ...

person Robin    schedule 30.11.2012    source источник
comment
Вы получаете текст сообщения об ошибке прямо в середине строки JSON? В строке, сгенерированной Google?   -  person Álvaro González    schedule 30.11.2012
comment
спасибо внимание. вот демонстрация: jsbin.com/ugoraw/1/edit   -  person Robin    schedule 30.11.2012
comment
возможный дубликат jQuery getJSON не будет работать в междоменном домене   -  person pimvdb    schedule 30.11.2012


Ответы (1)


Вопросительный знак вызывает проблему.

Вам нужно изменить ? на функцию:

$(function(){
  $.getJSON("http://maps.google.com/maps/api/geocode/json?latlng=39.971277199999996,116.4864269&language=zh-CN&sensor=false&callback=handleMaps");

  function handleMaps(data) {
        alert("working");
  }

});

Обратите внимание, что вам не разрешат делать это в jsbin из-за ограничений контроля доступа.

Я также рекомендую прочитать следующий вопрос и ответы: jQuery и ответ Google Maps json

person mccannf    schedule 30.11.2012