Le titre réécrit est : Message d'erreur "Les requêtes inter-domaines ne prennent en charge que HTTP" rencontré lors du chargement de fichiers locaux
P粉680487967
2023-08-21 14:43:40
<p>J'essaie d'utiliser <code>JSONLoader</code> pour charger un modèle 3D stocké sur mon ordinateur dans le même répertoire que l'ensemble du site Web dans Three.js. </p>
<p>J'ai rencontré l'erreur <code>"Les requêtes d'origine croisée ne prennent en charge que le protocole HTTP"</code>, mais je ne sais pas quelle en est la cause ni comment y remédier. </p>
Juste pour être clair : oui, l'erreur indique que vous ne pouvez pas pointer directement dans le navigateur
file://some/path/some.html
Voici quelques options pour lancer rapidement un serveur Web local afin de permettre à votre navigateur d'afficher les fichiers locaux
Python 2
Si Python est déjà installé...
Utilisez la commande
cd /path/to/your/folder
进入包含您的文件some.html
ou un dossier de fichiersDémarrez le serveur Web Python à l'aide de la commande
python -m SimpleHTTPServer
Cela démarrera un serveur Web sur
http://localhost:8000
pour héberger l'intégralité de votre répertoirepython -m SimpleHTTPServer 9000
,链接为:http://localhost:9000
Cette méthode est intégrée à toute installation Python.
Python 3
Suivez les mêmes étapes mais utilisez la commande suivante :
python3 -m http.server
VSCode
Si vous utilisez Visual Studio Code, vous pouvez installer l'extension Live Server, qui fournit un environnement de serveur Web local.
Node.js
Ou si vous avez besoin d'une configuration plus réactive et que vous utilisez déjà nodejs...
En participant
npm install -g http-server
安装http-server
Basculez vers le répertoire de travail contenant
some.html
Démarrez votre serveur http en émettant
http-server -c-1
Cela démarrera un httpd Node.js servant les fichiers de votre répertoire sous forme de fichiers statiques accessibles depuis
http://localhost:8080
Rubis
Si votre langue préférée est Ruby... les dieux Ruby disent que cela fonctionne aussi :
PHP
Bien sûr, PHP a aussi une solution.
Ma boule de cristal m'indique que vous utilisez
file://
或C:/
加载模型,这符合错误信息,因为它们不是http://
Vous pouvez donc installer un serveur Web sur votre machine locale ou télécharger le modèle ailleurs et l'utiliser
jsonp
并将URL更改为http://example.com/path/to/model
L'origine est définie dans RFC-6454
Donc même si vos fichiers proviennent du même hébergeur (
localhost
),但只要方案不同(http
/file
), ils sont considérés comme d'origines différentes.