Étant donné que les requêtes HTTP d'origine croisée ne sont pas prises en charge, une erreur se produit lors de la tentative de chargement d'un fichier local.
P粉265724930
P粉265724930 2023-08-27 11:41:12
0
2
530
<p>J'essaie d'utiliser <code>JSONLoader</code> pour charger un modèle 3D stocké localement sur mon ordinateur et se trouvant dans le même répertoire que l'ensemble du site Web dans Three.js. </p> <p>Je reçois l'erreur <code>"Seules les requêtes d'origine croisée pour HTTP sont prises en charge."</code>, mais je ne sais pas quelle en est la cause ni comment y remédier. </p>
P粉265724930
P粉265724930

répondre à tous(2)
P粉838563523

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

  1. Utilisez la commande cd /path/to/your/folder将目录更改为文件some.html ou le dossier où se trouve le fichier

  2. Utilisez la commande python -m SimpleHTTPServer

    pour démarrer le serveur Web Python

Cela démarrera un serveur Web pour héberger l'intégralité de votre répertoire sur http://localhost:8000

  1. Vous pouvez utiliser un port personnalisé 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 suivantepython3 -m http.server

VSCode

Si vous utilisez Visual Studio Code, vous pouvez installer l'extension Live Server pour 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...

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

  2. Basculez vers votre répertoire de travail, où se trouve some.html

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

ruby -run -e httpd . -p 8080

PHP

Bien sûr, PHP a aussi sa solution.

php -S localhost:8000
P粉309989673

Ma boule de cristal dit que vous utilisez file://C:/ 加载模型,这与错误消息相符,因为它们不是http://

Vous pouvez donc soit installer un serveur Web sur votre PC local, soit 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 la RFC-6454 comme

...they have the same
   scheme, host, and port.  (See Section 4 for full details.)

Ainsi, même si vos fichiers proviennent du même hôte (localhostlocalhost),但只要方案不同 (http / file), ils sont considérés comme d'origines différentes tant que le schéma est différent (http

/ file🎜). 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal