JQuery JSON разбора проблемы Google Maps - PullRequest
1 голос
/ 10 февраля 2011

Я пытаюсь получить ответ json от Google Maps, используя этот код:

var address = 'Sydney,NSW';
$.ajax({  
    type: "GET",  
    url: "http://maps.googleapis.com/maps/api/geocode/json?sensor=false",  
    dataType: "jsonp",
    data: ({"address":address}),
    success: function(json){
        if (json.status == "OK") {
           alert(":)");   
        } else {
            alert('wrong!');
        }
   }
});

Это работает действительно хорошо, но ...

в результате я получаю

Uncaught SyntaxError: Неожиданный токен: в Chrome и Ошибка: не найден элемент в FireFox ..

похоже, что-то не так с возвращенным JSON, но выглядит хорошо:

{  
 "status": "OK",
 "results": [ {
 "types": [ "locality", "political" ],
 "formatted_address": "Sydney New South Wales, Australia",
   "address_components": [ {
   "long_name": "Sydney",
   "short_name": "Sydney",
   "types": [ "locality", "political" ]
  }, {
   "long_name": "New South Wales",
   "short_name": "New South Wales",
   "types": [ "administrative_area_level_1", "political" ]
}, {
  "long_name": "Australia",
  "short_name": "AU",
  "types": [ "country", "political" ]
} ],
"geometry": {
  "location": {
    "lat": -33.8689009,
    "lng": 151.2070914
  },
  "location_type": "APPROXIMATE",
  "viewport": {
    "southwest": {
      "lat": -34.1648540,
      "lng": 150.6948538
    },
    "northeast": {
      "lat": -33.5719182,
      "lng": 151.7193290
    }
  },
  "bounds": {
    "southwest": {
      "lat": -34.1692489,
      "lng": 150.5022290
    },
    "northeast": {
      "lat": -33.4245980,
      "lng": 151.3426361
    }
  }
}

}]}

1 Ответ

1 голос
/ 10 февраля 2011

Возвращение должно быть jsonp, а не json (json должен быть заключен в вызов функции)

Попробуйте использовать GM2 (похоже, что jsonp не поддерживается в GM3)

$.ajax({  
type: "GET",  
url: "http://maps.google.com/maps/geo?sensor=false&output=json&"+$.param({"q":address}),  
dataType: "jsonp",
success: function(json){
    if (json.Status.code == "200") {
       alert(":)");   
    } else {
        alert('wrong!');
    }

} });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...