11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Voici le message d'erreur que j'ai dans la console lorsque je j'essai de consulter ma page sur Chrome et je n'ai pas d'affichage
Pas de problème avec Firefox


jquery-3.3.1.min.js:2 Access to XMLHttpRequest at 'file:///C:/Users/elabd/Desktop/COURS%20Programmeur/PROJET_EXAM_ORIGIN/data/data.json' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
send @ jquery-3.3.1.min.js:2


Merci par avance pour votre aide,
RedOne
Modérateur
Bonjour,

Tu n'as pas de serveur en local ?

"'file:///C:/Users/..." (qui me laisse penser que tu ne navigues pas avec des adresses commençant par http, probablement parce que tu n'as pas de serveur en local) pose problème à certains navigateurs. Ces navigateurs bloquent les requêtes comportant ce type d'adresse parce qu'ils y voient une requête cross-domain (une page d'un domaine essayant d'accéder à une ressource d'un autre domaine).

Dans ton cas, ta page essaie d'accéder à ton fichier json qui est tout comme ta page dans le disque dur de ton ordi, mais Chrome considère qu'ils ne sont pas dans le même domaine.

Autoriser des requêtes cross-domain "en général" est générateur de trous de sécurité, c'est pourquoi les navigateurs les interdisent, sauf exception (sinon ce serait trop facile à comprendre).

Pour contourner le problème :

- soit tu utilises un serveur web installé localement sur ta machine (de toute façon, si ce n'est pas fait, c'est à faire si tu codes un peu), et dans ce cas, le chemin d'accès à ta ressource ne sera plus un truc du genre "'file:///C:/Users/..." mais plutôt un truc du genre "http://localhost...", et alors la requête passera,

- soit tu peux paramétrer Chrome pour qu'il autorise ce type de requête. A priori, t'es sous Windows. Dans ce cas, il est (entre autre) possible de lancer Chrome via une ligne de commande du genre "C:\...\Chrome.exe" --allow-file-access-from-files. Chrome lancé de cette manière devrait laisser passer tes requêtes cross-domain.

Amicalement,
Meilleure solution
Parsimonhi,

Merci pour tes explications .
Je comprends tout à fait le problème.

Je vais faire le nécessaire.

Bonne soirée,
salut mais de quel extensions tu parles car j'ai le même problème ?
Access to script at 'file:///C:/Users/k-hal/Documents/dossierudemyexemple/js.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
js.js:1 Failed to load resource: net::ERR_FAILED