CORS errors

Cross-Origin Resource Sharing (CORS) est une norme qui permet Ă  un serveur d'assouplir la politique de mĂȘme origine.

Celle-ci est utilisĂ©e pour autoriser explicitement certaines requĂȘtes provenant d'autres sources tout en en rejetant d'autres. Par exemple, si un site offre un service intĂ©grable, il peut ĂȘtre nĂ©cessaire d'assouplir certaines restrictions. La configuration d'une telle configuration CORS n'est pas nĂ©cessairement facile et peut prĂ©senter certains dĂ©fis. Dans ces pages, nous examinerons quelques messages d'erreur CORS courants et comment les rĂ©soudre.

Si la configuration CORS n'est pas correctement effectuĂ©e, la console du navigateur affichera une erreur du type "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite" ("RequĂȘte Cross-Origin bloquĂ©e : La politique de mĂȘme origine interdit la lecture de la ressource distante Ă  $somesite" en français) indiquant que la demande a Ă©tĂ© bloquĂ©e en raison d'une violation des rĂšgles de sĂ©curitĂ© de CORS. Cependant, ce n'est pas nĂ©cessairement une erreur de configuration. Il est possible que la demande soit en fait intentionnellement refusĂ©e par l'application web de l'utilisateur et le service externe distant. Toutefois, si le terminal est destinĂ© Ă  ĂȘtre disponible, un certain dĂ©bogage est nĂ©cessaire pour y parvenir.

Identifier le problĂšme

Pour saisir la cause de l'erreur, il faut prĂ©alablement dĂ©couvrir la requĂȘte fautive, ainsi que la configuration erronĂ©e. Ces Ă©tapes peuvent ĂȘtre utiles au processus:

  1. Rendez-vous sur le site défaillant et ouvrez les Developer Tools.
  2. Essayez de reproduir la requĂȘte qui Ă©choue et vĂ©rifiez la console pour trouver les messages de violation CORS, ce qui tournerait autours de:

Firefox console showing CORS error

Le text de l'erreur sera probablement similaire Ă :

Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://some-url-here. (Reason:
additional information here).

Note: Pour des raisons de sĂ©curitĂ©, il est impossible d'analyser les causes de l'erreur CORS via JavaScript. Seule une indication de l'Ă©chec de la requĂȘte sera fournie. Il faut donc absolument regarder manuellement les messages d'erreur de la console pour dĂ©bugger.

Messages d'erreur CORS

Firefox affiche les erreurs dans la console lors d'Ă©chec de requĂȘte CORS. Ce message contient entre autres un champ "reason" donnant un meilleur contexte quant Ă  la raison de l'Ă©chec de la requĂȘte. Ces messages sont listĂ©s ci-dessous; chacun de ces liens pointent vers un article plus spĂ©cifique et contenant des pistes de solution.

Voir aussi