Heim >Web-Frontend >js-Tutorial >Warum besteht meine AngularJS ngResource-Anfrage an eine AWS-API die Preflight-Zugriffskontrollprüfung nicht?
Bei der Verwendung von ngResource zur Interaktion mit einer REST-API auf Amazon Web Services können Benutzer Möglicherweise tritt der folgende Fehler auf:
XMLHttpRequest cannot load http://server.apiurl.com:8000/s/login?login=facebook. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. Error 405
Dieser Fehler ist auf Cross-Origin Resource Sharing (CORS) zurückzuführen. CORS erzwingt Sicherheitsbeschränkungen, die verhindern, dass Ressourcen aus einer Domäne (z. B. localhost) direkt auf Ressourcen aus einer anderen Domäne (z. B. server.apiurl.com) zugreifen.
Um das Problem zu beheben , ziehen Sie die folgenden Ansätze in Betracht:
Es ist wichtig zu beachten, dass der Zugriff auf eine externe Domäne von localhost aus eine domänenübergreifende Anfrage darstellt. Dies löst den CORS-Sicherheitsmechanismus aus, der unbefugten Zugriff verhindert.
Das Deaktivieren von CORS oder die Verwendung von Plugins kann zwar eine schnelle Lösung für Tests sein, löst jedoch nicht das zugrunde liegende Problem der Cross- Ursprungskommunikation. Die Verwendung eines Proxys oder die Konfiguration des Servers, um ursprungsübergreifenden Zugriff zu ermöglichen, ist ein umfassenderer Ansatz.
Das obige ist der detaillierte Inhalt vonWarum besteht meine AngularJS ngResource-Anfrage an eine AWS-API die Preflight-Zugriffskontrollprüfung nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!