2016-07-15 9 views
0

Ich versuche, Daten aus einer API mit JQuery AJAX() abrufen, aber es mit diesem Implemenation funktioniert nicht:Ajax rufen nicht nach API arbeitet

$.ajax('http://api.forismatic.com/api/1.0/?method=getQuote&format=json').done(function(data) { 
 
    alert(1); 
 
    alert(JSON.stringify(data)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Nach dem Laufen code die alarm funktion funktioniert nicht, so kam ich zu dem schluss, dass die success callback funktion nicht funktioniert, aber ich habe keine ahnung warum.

+3

Können Sie einen Fehler in der Konsole sehen? – Rayon

+0

Kein Fehler in der Konsole, nur die Alarmfunktion wurde nicht aufgerufen –

+0

Sie sollten versuchen, Fehler für Ajax-Anrufe aus genau diesem Grund zu fangen :) –

Antwort

3

Nachdem die Server-Antwort-Header Inspektion, gibt es keine Access-Control-Allow-Origin, bedeutet dies, dass der Server erlaubt keine Cross-Origin-Zugang. Da Sie eine Cross-Origin-HTTP-Anforderung machen, wird Ihre Anfrage vom Browser zurückgewiesen werden nach dem Same Origin Policy:

Die Same Origin Policy beschränkt, wie ein Dokument oder ein Skript aus ein Ursprung geladen kann interagieren mit einer Ressource von einem anderen Ursprung. Es ist ein kritischer Sicherheitsmechanismus zum Isolieren potentiell bösartiger Dokumente.

Blick auf Ihre Konsole wird Ihnen die folgende Fehlermeldung (Chrom) sehen:

XMLHttpRequest nicht http://api.forismatic.com/api/1.0/?method=getQuote&format=json laden kann. No Der 'Access-Control-Allow-Origin'-Header ist auf der angeforderten -Ressource vorhanden. Herkunft 'http://s.codepen.io' ist daher nicht erlaubt Zugriff.

Weitere Informationen finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

+0

Vielen Dank! –

+0

Sie sind willkommen;) –

+0

Sie sagen also, dass es jsfiddle nicht möglich ist, ein Jquery-Modul vom CDN anzufordern, wegen der gleichen Ursprungsrichtlinie? –