diff --git a/CORRECTION_cors.md b/CORRECTION_cors.md new file mode 100644 index 0000000..445d650 --- /dev/null +++ b/CORRECTION_cors.md @@ -0,0 +1,66 @@ +# 🔧 L'erreur « CORS policy » sur ton `fetch` + +Rassure-toi : ton code `fetch` n'est **pas** faux. Cette erreur n'a rien à voir avec ta logique — c'est juste **la façon dont tu ouvres la page**. + +--- + +## Pourquoi ça arrive + +Tu ouvres `services.html` en **double-cliquant** dessus → l'adresse commence par `file://`. Or `fetch` **refuse** de lire un fichier quand la page est en `file://` : le navigateur considère ça comme non sécurisé et bloque avec un message « CORS policy ». + +`fetch` veut une adresse en **`http://`**. Il faut donc « servir » ton dossier avec un mini-serveur. + +--- + +## La solution (1 commande) + +Dans un terminal, place-toi à la **racine du projet** et lance : + +```bash +python3 -m http.server 8000 +``` + +Puis, dans le navigateur, ouvre : + +``` +http://localhost:8000/pages/services.html +``` + +(et **pas** le fichier en double-clic). L'adresse est maintenant en `http://` → `fetch` fonctionne, l'erreur CORS disparaît. Pour arrêter le serveur : `Ctrl + C`. + +> 💡 **À retenir :** « CORS policy » sur un `fetch` de fichier local = tu as ouvert la page en `file://`. La réponse est presque toujours : **passe par un petit serveur** (`python3 -m http.server`). C'est aussi ce que fait un vrai site : un serveur envoie les fichiers. + +--- + +## Deux détails à corriger pendant que tu y es + +Une fois le CORS réglé, il te restera deux petits trucs sinon ça ne s'affichera toujours pas : + +### 1. Le chemin du fichier +```js +const reponse = await fetch("vehicules.json"); // cherche pages/vehicules.json +``` +Le chemin est calculé **depuis la page** (`pages/services.html`), pas depuis `devis.js`. Ton fichier est dans `pages/css/`, donc : +```js +const reponse = await fetch("css/vehicules.json"); // ✅ +``` +(C'est cohérent avec ta balise `