Raison : la requête CORS n'utilise pas HTTP

Message

http
Raison : la requête CORS n'utilise pas HTTP

En anglais :

http
Reason: CORS request not HTTP

Quel est le problème ?

Les requêtes CORS peuvent uniquement utiliser les schémas d'URL HTTP ou HTTPS et l'URL indiquée dans la requête est d'un type différent.

Cela se produit généralement lorsque l'URL pointe vers un fichier local et utilise le schéma file:///.

Pour corriger ce problème, assurez-vous d'utiliser des URL HTTPS lors de requêtes impliquant du CORS (comme les requêtes XMLHttpRequest, fetch(), celles pour les polices de caractères (@font-face), les textures WebGL, et les feuilles de style XSL).

Chargement d'un fichier local

Les fichiers locaux appartenant au même répertoire et aux sous-répertoires étaient, par le passé, considérés comme provenant de la même origine.

Cela signifiait qu'un fichier et l'ensemble de ses ressources attachées pouvaient être chargés depuis un répertoire local (et les sous-répertoires associés) lors des tests, sans déclencher d'erreur CORS.

Toutefois, cela a eu des conséquences en termes de sécurité (voir ce bulletin d'alerte : CVE-2019-11730).

De nombreux navigateurs, comme Firefox et Chrome, considèrent désormais que les fichiers locaux ont, par défaut, des origines opaques. Par conséquent, le chargement d'un fichier local utilisant des ressources locales entraînera désormais des erreurs CORS.

Les développeuses et développeurs qui doivent réaliser des tests en local doivent désormais mettre en place un serveur local.

De cette façon, l'ensemble des fichiers est servi depuis le même domaine (localhost) et avec le même schéma : ils ont la même origine et ne déclenchent plus d'erreurs liées à la multiplicité des origines.

Note : Ce changement est en accord avec la spécification sur les URL, qui laisse l'implémentation libre du comportement quant à l'origine des fichiers, mais qui recommande, en cas de doute, de considérer les origines des fichiers comme opaques.

Voir aussi