Maison  >  Questions et réponses  >  le corps du texte

"Les requêtes d'origine croisée ne sont prises en charge que via HTTP." Erreur lors du chargement du fichier local.

<p>J'essaie d'utiliser <code>JSONLoader</code> 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. </p> <p>J'obtiens l'erreur<code>"Les requêtes d'origine croisée ne sont prises en charge que via HTTP."</code>, mais je ne sais pas quelle en est la cause ni comment y remédier. </p>
P粉128563140P粉128563140447 Il y a quelques jours547

répondre à tous(2)je répondrai

  • P粉868586032

    P粉8685860322023-08-24 12:35:01

    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 < /p>

    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 des ports personnalisés 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

    répondre
    0
  • P粉710478990

    P粉7104789902023-08-24 10:11:33

    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 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🎜). 🎜

    répondre
    0
  • Annulerrépondre