Maison >interface Web >js tutoriel >Pourquoi ma requête AngularJS ngResource adressée à une API AWS échoue-t-elle à la vérification préalable du contrôle d'accès ?
Lors de l'utilisation de ngResource pour interagir avec une API REST sur Amazon Web Services, les utilisateurs peut rencontrer l'erreur suivante :
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
Ceci L’erreur provient du partage de ressources Cross-Origin (CORS). CORS applique des restrictions de sécurité qui empêchent les ressources d'un domaine (par exemple, localhost) d'accéder directement aux ressources d'un autre domaine (par exemple, server.apiurl.com).
Pour résoudre le problème , envisagez les approches suivantes :
Il est important de noter que l'accès à un domaine externe à partir de localhost constitue une requête inter-domaine. Cela déclenche le mécanisme de sécurité CORS, qui empêche tout accès non autorisé.
Bien que la désactivation de CORS ou l'utilisation de plugins puisse être une solution rapide pour les tests, cela ne résout pas le problème sous-jacent des croisements. communication d'origine. Utiliser un proxy ou configurer le serveur pour autoriser l'accès multi-origine est une approche plus complète.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!