"Les requêtes d'origine croisée ne sont prises en charge que via HTTP." Erreur lors du chargement du fichier local.
P粉128563140
P粉128563140 2023-08-23 15:30:29
0
2
502

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.

P粉128563140
P粉128563140

répondre à tous (2)
P粉868586032

Pour être clair : oui, l'erreur indique que vous ne pouvez pas pointer votre navigateur directement versfile://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 commandecd /path/to/your/folder将目录更改为文件some.htmlou le dossier où se trouve le fichier

  2. Utilisez la commandepython -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 surhttp://localhost:8000

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

  1. En tapantnpm install -g http-server安装http-server

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

  3. Démarrez votre serveur http en émettanthttp-server -c-1

Cela démarre Node.js httpd qui sert les fichiers du répertoire sous forme de fichiers statiques, disponibles surhttp://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粉710478990

    Ma boule de cristal dit que vous utilisezfile://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

    ...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
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!