Ich verwende Ajax, um Daten von Twitter über ihre API zu erhalten. Ich versuche jsonp zu benutzen und von dem, was ich sehen und verstehen kann, denke ich, dass ich alles richtig mache (natürlich nicht).JSONP-Kreuzursprungsfehler 'Keine Access-Control-Allow-Origin-Kopfzeile vorhanden'
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function() { $.ajax({ type: 'GET', datatype: 'jsonp', data: {}, crossDomain: 'true', url: "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?", error: function(textStatus, errorThrown) { alert("error"); }, success: function(msg) { console.log(msg); } }); }); </script>
Der obige Code generiert einen Fehler sowohl in Chrome und Firefox XMLHttpRequest kann http://twitter.com/status/user_timeline/padraicb.json?count=10&callback= nicht geladen?. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin 'null' ist daher nicht erlaubt.
Von meinem Verständnis dachte ich, dass mit dem &callback=?
und mit dem Typ jsonp
setzen würde dies erfolgreich sein. Außerdem kann ich sehen, dass das JSON-Objekt in fiddler zurückgegeben wird und nicht vom Skript behandelt wird. Ich habe mehrere APIs mit dem gleichen Problem ausprobiert.
Eine solche API funktioniert auch, wenn sie in die Adressleiste eingegeben wird.
Also ich nach umfangreicher Suche und Suche muss ich einige, wie die Herkunft auf *
setzen? Ich dachte, das wäre eher ein serverseitiges Problem?
Ich habe auch ?callback?
versucht, aber ohne Erfolg.
Alle Ideen wäre super danke.
Die Access-Control-Allow-Origin-Header muss auf dem Server eingestellt sein. In diesem Fall gehört der Server zu Twitter. [Lesen Sie hier] (http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin) –
@Paul Rene Also dies ist nicht etwas, das automatisch konfiguriert wäre von ihnen? Als öffentliche API dachte ich, dass dies von ihnen gehandhabt wurde? – Corey
@Corey Es ist von Entwurf. Sie möchten keine nicht authentifizierten Anfragen an ihre API mehr. Sie möchten, dass Sie einen API-Schlüssel und einen Server verwenden, um Anfragen zu stellen. – Munim