Heim >Web-Frontend >js-Tutorial >Wie löst man den Fehler „XMLHttpRequest kann nicht geladen werden. Die Antwort auf die Preflight-Anfrage besteht die Zugriffskontrollprüfung nicht'?
Problem:
Bei Verwendung von ngResource für den Zugriff auf eine REST-API Bei Amazon Web Services stoßen Sie auf Folgendes Fehler:
XMLHttpRequest cannot load <url>. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<origin>' is therefore not allowed access.
Ursache:
Dieses Problem ist auf CORS-Einschränkungen (Cross-Origin Resource Sharing) zurückzuführen, die verhindern, dass eine Webanwendung auf einer Domäne Anfragen stellt auf andere Domains ohne ausdrückliche Genehmigung.
Lösungen:
Es gibt mehrere Ansätze zur Lösung von CORS-Problemen:
1. CORS deaktivieren:
2. Browser-Plugins:
3. Proxyserver:
4. Serverkonfiguration:
5. HTTP-Beispiel mit Versprechen:
const makeRequest = (url, options) => { return new Promise((resolve, reject) => { const request = new XMLHttpRequest(); request.open(options.method, url); request.setRequestHeader('Accept', 'application/json'); request.onload = () => { if (request.status >= 200 && request.status < 300) { resolve(request.response); } else { reject({ status: request.status, statusText: request.statusText }); } }; request.onerror = () => { reject({ status: request.status, statusText: request.statusText }); }; request.send(options.body); }); };
Das obige ist der detaillierte Inhalt vonWie löst man den Fehler „XMLHttpRequest kann nicht geladen werden. Die Antwort auf die Preflight-Anfrage besteht die Zugriffskontrollprüfung nicht'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!