Abfragen von Google Places API mit jQuery
Google Places API ist jetzt allgemein verfügbar. Ich bin versucht zu benutzen .ajax () - Aufruf in jQuery einem Aufruf von Google Places. Die Fehler, die ich immer wieder ist Uncaught SyntaxError: Unexpected token :
Bin ich mit Hilfe von jQuery 1.5.2. Ich habe versucht, auf 1.5.1 zu, aber das hatte die gleichen Ergebnisse. Ich möchte lieber nicht bewegen, 1.6.1, wenn ich helfen kann.
Ich habe ajax-Aufrufe, wie dies mit anderen APIs nur da, aber ich habe Probleme mit Google Places. Unten ist ein sehr einfaches Beispiel für code, die Sie mit spielen können. Sie müssen gehen erhalten Sie Ihren eigenen Schlüssel in der API-Konsole bietet Google (https://code.google.com/apis/console)
jQuery.noConflict();
jQuery(document).ready(function(){
var url = 'https://maps.googleapis.com/maps/api/place/search/json';
jQuery.ajax({
url: url,
dataType: 'jsonp',
type: 'GET',
data: {
location: '33.787794,-117.853111',
radius: 1000,
name: 'coffee',
key: 'your_key', //add your key here
sensor: 'false'
},
//on success
success: function(data, textStatus, jqXHR){
console.log(data);
},
//on failure
error: function (jqXHR, textStatus, errorThrown){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
});
});
InformationsquelleAutor hemmeter | 2011-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus, was ich sehen kann aus der Dokumentation, die Google Places Web-Service-API wird nicht Unterstützung von JSONP - nur JSON. Die Fehler, die Sie sehen, ist, weil die Antwort ist einfach JSON-aber wird analysiert, wie wenn es war JSONP-und das zu einem Fehler führt.
Check-out der Google Maps-JavaScript-API - es umfasst Orte, die Bibliothek, die Sie vielleicht in der Lage sein zu verwenden - siehe
google.maps.Orte.PlacesServices#search()
.AFAIK, es scheint eine Verschiebung in Richtung der Beseitigung JSONP Unterstützung, zum Beispiel, die Geocoding-API zur Unterstützung von JSONP (ohne Papiere) in v2, aber nicht mehr in v3. Jemand schlug vor, es könnte sein, um Anreize für die Entwickler zur Nutzung der JavaScript-API statt.
Gut zu wissen, danke!
Ich glaube nicht, dass das mehr wahr, da Sie freigesetzt wird, ist öffentlich. Die docs nun... ", Wenn Ihre Anwendung zeigt Orte, die API-Daten auf einer Seite oder in einer Ansicht, die nicht auch die Anzeige einer Google-Karte, müssen Sie zeigen ein "Powered by Google" - logo mit diesen Daten."
Angesichts dessen, was ich oben sagte über nicht benötigen eine Karte, wie könnte man einen web-service aufrufen von JavaScript-angesichts der cross-domain-Probleme? Nur server-Seite Aufrufe?
Ja, unfortuately (AFAIK) nur die Optionen für cross-domain-requests sind JSONP, mit einem proxy oder den Zugang zu den server-code für die Verwendung von HTTP erlauben-Header. In diesem Fall werden nur die proxy-option bleibt.
InformationsquelleAutor no.good.at.coding
Das unten ist nicht eine direkte Lösung. Aber, das ist, wie ich es geschafft habe...
Da JSONP ist nicht unterstützt (und ich Verstand nicht, wie sich client-code verwenden soll, dass die API überhaupt), die Lösung ist ein proxy-thru deinem server... Wenn Sie mit rails auf Ihrem server-Seite, die unten kann für Sie arbeiten:
PS: Zur Generierung einer API-Schlüssel verwenden https://code.google.com/apis/console
InformationsquelleAutor Rafael Xavier