Maison >interface Web >js tutoriel >Pourquoi mon service Angular obtient-il une erreur CORS : \'Les requêtes ne sont prises en charge que pour les schémas de protocole : http...\' et comment puis-je y remédier ?
Erreur CORS : "Les requêtes ne sont prises en charge que pour les schémas de protocole : http..." Explication et résolution
Lorsqu'une requête HTTP est effectuée sur différentes origines, il peut être bloqué par le navigateur en raison du mécanisme de partage de ressources entre origines croisées (CORS). Cette restriction empêche l'accès non autorisé aux ressources provenant d'origines autres que le site effectuant la demande.
Dans le scénario donné, un service Angular tente de récupérer une réponse JSON à partir d'un backend Express exécuté sur localhost:4201/ticker. Cependant, la requête échoue avec l'erreur : "XMLHttpRequest ne peut pas charger localhost:4201/ticker. Les requêtes d'origine croisée ne sont prises en charge que pour les schémas de protocole : http, data, chrome, chrome-extension, https."
Malgré en essayant d'implémenter la gestion CORS à l'aide du module cors dans le serveur Express, l'erreur persiste. Les extraits de code fournis révèlent que l'URL utilisée dans le service Angular ne spécifie pas le schéma de protocole, ce qui est à l'origine de l'erreur CORS.
Pour résoudre ce problème, l'URL du service Angular doit être mise à jour pour inclure le Schéma de protocole http://. En ajoutant "http://" à l'URL, la requête sera correctement interprétée comme une requête HTTP, lui permettant de passer la validation CORS.
La section de code corrigée dans le Service Angular :
this._baseUrl = 'http://localhost:4201/';
Une fois cette modification effectuée, le service Angular devrait être en mesure de faire avec succès la requête au backend Express et de récupérer la réponse JSON sans rencontrer l'erreur CORS.
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!