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
P粉680487967 2023-08-21 14:43:40
0
2
566
<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>
P粉680487967
P粉680487967

répondre à tous(2)
P粉415632319

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é...

  1. Utilisez la commande cd /path/to/your/folder进入包含您的文件some.html ou un dossier de fichiers

  2. Dé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épertoire

  1. Vous pouvez utiliser des ports personnaliséspython -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...

  1. En participant npm install -g http-server安装http-server

  2. Basculez vers le répertoire de travail contenant some.html

  3. 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 :

ruby -run -e httpd . -p 8080

PHP

Bien sûr, PHP a aussi une solution.

php -S localhost:8000
P粉436688931

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

...它们具有相同的
   方案、主机和端口。(有关详细信息,请参见第4节。)

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal