2016-04-15 4 views
-1

Ich versuche googles Orte api zu verwenden, um in der Nähe von Orten zu kommen .... so habe ich versucht, die Kopfzeile so wie geschrieben im Code .... Es hat nicht funktioniert ... dann habe ich müde dataType:'jsonp' ... Dies zeigt einige Fehler ... als ich den Fehler in Chrome sah ... die Daten von google zurückgegeben war da, aber ich konnte nicht zugreifen es ... aber firefox nur knapp sein Ziel die zurückgegebenen Daten von google vollständig angezeigt werden, sondern nur die zweite Zeile der Daten „html_attributions":[],Access-Control-Allow-Origin verhindert den Zugriff auf google API trotz Verwendung von dataType: 'jsonp'

$.ajax({       
     url : "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=13.089500428429146,77.48688038438559&radius=1000&type=bus_station&key=AXXXXXXXXXXXXXXXXXXXXXXX", 
     type:"GET", 
     //headers:{"Access-Control-Allow-Origin":"https://maps.googleapis.com/"}, 
     dataType: 'jsonp', 
     success: function (return_data_json){ 
       console.log(return_data_json); 
     } 
}); 
+0

jsonp ist nicht die einzige Lösung für CORS-Probleme. Es funktioniert nur, wenn die API, die Sie anfordern, auch JSONP unterstützt. –

+0

So können Sie mir eine Lösung geben .... Wenn Sie können ... –

+0

Wenn ein API-Endpunkt einen API-Schlüssel benötigt, gibt es eine ziemlich gute Chance, dass Sie die Anfrage nicht mit Ihrem Browser (und wahrscheinlich sollte das sowieso nicht sein aufgrund der TOS der genannten API.) –

Antwort

0

ok so ist dies, wie wir es in Javascript tun ... google ihre eigenen Funktionen haben dafür ....

Link: https://developers.google.com/maps/documentation/javascript/places#place_search_requests

var map; 
var service; 
var infowindow; 

function initialize() { 
    var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316); 

    map = new google.maps.Map(document.getElementById('map'), { 
     center: pyrmont, 
     zoom: 15 
    }); 

    var request = { 
    location: pyrmont, 
    radius: '500', 
    types: ['store'] 
    }; 

    service = new google.maps.places.PlacesService(map); 
    service.nearbySearch(request, callback); 
} 

function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
    for (var i = 0; i < results.length; i++) { 
     var place = results[i]; 
     createMarker(results[i]); 
    } 
    } 
} 
  • jemand will den Zugang zum Platz Id und Sachen gewinnen das ist, wie wir es tun .... In der Call-Back-Funktion wir die JSONArray der Plätze wurden von Google zurück ... In der Aufforderung zur Schleife var place = results[i]; nach der Zeile Funktion innerhalb der Rückseite kann u bekommen wat u wollen wie

    console.log(place.name); console.log(place.place_id); var types = String(place.types); types=types.split(","); console.log(types[0]);