2012-02-07 3 views
1

Я извлекаю данные о высоте из API Карт Google с помощью AJAX.Извлечение ошибки JSON: Неожиданный токен:

Я получаю данные назад Я хочу, чтобы я смотрел на консоль в Chrome. Я могу видеть код состояния 200 и видеть данные на вкладке ответа. Но бросает «Uncaught SyntaxError: Неожиданный токен», поэтому я не могу отобразить что-либо из файла JSON.

Это мой код:

var theURL = 'http://maps.googleapis.com/maps/api/elevation/json?locations=' + longitude + ',' + latitude + '&sensor=false&callback=?';  
$.ajax({ 
     url: theURL, 
     type: 'get', 
     dataType: 'json', 
     cache: false, 
     crossDomain: true, 
     success: function (data) { 
      var theData = $.parseJSON(data); 
      console.log(theData); 
     } 
    }); 

Прямую код здесь: http://map.colouringcode.com/

Вся помощь очень ценится.

ответ

0

API Карт Google не поддерживает прямые запросы JSONP.

Вместо этого вам необходимо использовать Javascript API.

+0

Как я могу захватить данные, если он не принимает запросы JSONP? –

+0

Вместо этого вам необходимо использовать [Javascript API] (http://code.google.com/apis/maps/documentation/javascript/elevation.html). – SLaks

0

Понимая, что этот вопрос устарел, я надеюсь, что это может помочь кому-то в будущем. Это была моя первая встреча с javascript и особенно со всеми этими материалами JSON, и поэтому я сильно ударился головой о стол, пытаясь понять, что я делаю неправильно.

Это мое решение, которое извлекает местоположение клиентов (в латах и ​​lng), а затем использует геокодирование google geo для определения их местоположения в формате «читаемый человеком».

function currentLocation() { 
    navigator.geolocation.getCurrentPosition(foundLocation, errorLocation); 

    function foundLocation(position) { 
     var lat = position.coords.latitude; 
     var lng = position.coords.longitude; 

     //This is where the geocoding starts 
     var locationURL= "http://maps.googleapis.com/maps/api/geocode/json?latlng=" 
      + lat + "," + lng + "&sensor=false&callback=myLocation" 

     //This line allows us to get the return object in a JSON 
     //instead of a JSONP object and therefore solving our problem 
     $.getJSON(locationURL, myLocation); 
    } 

    function errorLocation() { 
     alert("Error finding your location."); 
    } 
} 

function myLocation(locationReturned) { 
    var town = locationReturned.results[0].address_components[1].short_name; 
    var state = locationReturned.results[0].address_components[4].short_name; 
    console.log(town, state); 
} 
Смежные вопросы