J'essaie d'utiliser JSONLoader
pour charger un modèle 3D stocké localement sur mon ordinateur dans Three.js, et le modèle 3D se trouve dans le même répertoire que l'ensemble du site Web.
J'obtiens l'erreur"Les requêtes d'origine croisée ne sont prises en charge que via HTTP."
, mais je ne sais pas quelle en est la cause ni comment y remédier.
Pour être clair : oui, l'erreur indique que vous ne pouvez pas pointer votre navigateur directement vers
file://some/path/some.html
Voici quelques options pour démarrer rapidement un serveur Web local et laisser votre navigateur restituer les fichiers locaux
Python 2
Si Python est installé...
Utilisez la commande
cd /path/to/your/folder
将目录更改为文件some.html
ou le dossier où se trouve le fichierUtilisez la commande
pour démarrer le serveur Web Pythonpython -m SimpleHTTPServer
Cela démarrera un serveur Web pour héberger l'intégralité de votre répertoire sur
http://localhost:8000
python -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 utilisezVisual Studio Code, vous pouvez installer l'extensionLive Serverpour fournir 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 tapant
npm install -g http-server
安装http-server
Basculez vers votre répertoire de travail, où se trouve
some.html
Démarrez votre serveur http en émettant
http-server -c-1
Cela démarre Node.js httpd qui sert les fichiers du répertoire sous forme de fichiers statiques, disponibles sur
http://localhost:8080
Rubis
Si votre langue préférée est Ruby...Ruby Gods dit que cela fonctionne aussi :
PHP
Bien sûr, PHP a aussi sa solution.
Ma boule de cristal dit que vous utilisez
file://
或C:/
加载模型,这与错误消息相符,因为它们不是http://Vous pouvez donc installer un serveur Web sur votre PC local ou télécharger le modèle ailleurs et utiliser jsonp et changer l'URL en http://example.com/path/to/model
L'origine est définie dans laRFC-6454comme
Ainsi, même si vos fichiers proviennent du même hôte (
/localhost
localhost
),但只要方案不同 (http
/file
), ils sont considérés comme d'origines différentes tant que le schéma est différent (http
file).