CORS-header "Access-Control-Allow-Origin' fehlt
Ich rufe diese Funktion aus meinem asp.net form und bekommen folgende Fehlermeldung in firebug-Konsole beim Aufruf von ajax.
Cross-Origin-Anfrage Blockiert: Die same-Origin-Policy verbietet das Lesen der remote-Ressource auf http://anotherdomain/test.json. (Grund: CORS-header "Access-Control-Allow-Origin' fehlt).
var url= 'http://anotherdomain/test.json';
$.ajax({
url: url,
crossOrigin: true,
type: 'GET',
xhrFields: { withCredentials: true },
accept: 'application/json'
}).done(function (data) {
alert(data);
}).fail(function (xhr, textStatus, error) {
var title, message;
switch (xhr.status) {
case 403:
title = xhr.responseJSON.errorSummary;
message = 'Please login to your server before running the test.';
break;
default:
title = 'Invalid URL or Cross-Origin Request Blocked';
message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your server.';
break;
}
});
Ich getan habe, auf andere Weise aber immer noch nicht die Lösung gefunden.
Hinweis: ich habe keine server-Rechte, um server-side-API (/URL) ändert.
Tut
keine
jsonp ermöglicht die übergabe einer callback-parameter von einer Art, die ermöglicht den Empfang der json verpackt Daten ohne
Können Sie mir zeigen, ein Beispiel? Weil ich alles versucht, was möglich war für mich. Nicht sicher, warum es nicht funktioniert??
Wir müssen wissen, die api, die Sie versuchen zu Kontaktieren, die jsonp-Spezifikation wäre in seiner Dokumentation
anotherdomain
Unterstützung von jsonp? Ansonsten Lesen dieser doppelte thread stackoverflow.com/questions/20035101/...keine
anotherdonain
keine Unterstützung für CORS. Ich bin immer title = 'Invalid URL or Cross-Origin Request Blocked';
Nachricht.jsonp ermöglicht die übergabe einer callback-parameter von einer Art, die ermöglicht den Empfang der json verpackt Daten ohne
cors
Können Sie mir zeigen, ein Beispiel? Weil ich alles versucht, was möglich war für mich. Nicht sicher, warum es nicht funktioniert??
Wir müssen wissen, die api, die Sie versuchen zu Kontaktieren, die jsonp-Spezifikation wäre in seiner Dokumentation
InformationsquelleAutor Mayank Modi | 2015-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies geschieht im Allgemeinen, wenn Sie versuchen, Zugriff auf einen anderen domain-Ressourcen.
Dies ist eine Sicherheitsfunktion zur Vermeidung von jedermann frei Zugriff auf alle Ressourcen der Domäne (die zugegriffen werden kann, zum Beispiel, um eine exakt gleiche Kopie Ihrer website auf eine Piraten-domain).
Den header der Antwort, auch wenn es 200OK nicht zulassen, dass andere Ursprünge (Domänen, port), um den Zugriff auf die Ressourcen.
Dieses problem können Sie beheben, wenn Sie sind die Inhaber der beiden domains:
Lösung 1: per .htaccess
Ändern, können Sie dies in der .htaccess der gewünschte domain Datei:
Lösung 2: setzen Sie überschriften der richtige Weg
Wenn Sie diese in die Antwort-header der abgerufenen Datei, Sie wird damit jeder Zugriff auf die Ressourcen:
ODER
Friedens und der code 😉
Dies kann eine Menge Dinge...das beste wäre, wenn die angeforderten Medien, die auf dem gleichen server, wenn möglich...
Jeff: stellen Sie sicher, Sie mod_headers. Modul aktiviert ist, in deine server-Konfiguration. Wie Sie bemerkt haben, gkubed die Antwort ist ein IfModule test. In der Tat der beste Weg ist nicht, wickeln Sie es in diesem test, so wird ein Fehler ausgelöst, wenn dieses Modul nicht auf dem server vorhanden ist.
Die Betonung in der Antwort wird sehr geschätzt. Die Platzierung dieser Header auf "angeforderte domain" (im Gegensatz zu den anderen) war der Schlüssel für mich.
InformationsquelleAutor 538ROMEO
in deinem ajax-request, fügt hinzu:
nach der Zeile :
sollte dieses problem lösen ..
hoffe, dies hilft Ihnen
Ich habe dieses Problem mit der wikipedia, und es ist nur der fix, dass die Arbeit!
JSONP funktioniert nur für die GET-Methode/Typ. 🙂
InformationsquelleAutor Pegasus Cozza
Sie ändern müssen, um Ihre server-side-code, wie unten angegeben
Oh ja, blind zu sagen, jemand, den Sie zum aktivieren dieser Einstellung in einer Produktionsumgebung. Tolle Idee.
InformationsquelleAutor Ritesh Kumar
Server-Seite setzen Sie diese auf der Oberseite .php:
Können Sie bestimmte Domäne Einschränkung Zugriff:
InformationsquelleAutor Ghanshyam Nakiya
Müssen Sie auf die Idee gekommen ist, warum Sie werden immer dieses problem durch gehen nach oben Antworten.
Müssen Sie nur fügen Sie die obige Zeile in Ihre server-Seite.
InformationsquelleAutor Raghvendra Singh
Ihrem browser nicht zulassen, dass Ihre Anfrage ..
Sie müssen zum installieren von addon mit Ihrem web-browser
Für Chrome:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
Für Firefox
https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/
Beste Weg,
Sie können header hinzufügen, die im server-Seite
Access-Control-Allow-Origin : *
InformationsquelleAutor Sourav Golui