「クロスオリジンリクエストはHTTP経由でのみサポートされます。」ローカルファイルのロードエラー
P粉128563140
2023-08-23 15:30:29
<p><code>JSONLoader</code> を使用して、コンピュータにローカルに保存されている 3D モデルを Three.js にロードしようとしていますが、3D モデルは Web サイト全体と同じディレクトリにあります。 </p>
<p><code>「クロスオリジン リクエストは HTTP 経由でのみサポートされます。」</code> エラーが表示されますが、原因や修正方法がわかりません。 </p>
明確にしておきます - はい、このエラーは、ブラウザーで
を直接指定できないことを示しています。file://some/path/some.html
ここでは、ローカル Web サーバーを迅速に起動し、ブラウザーにローカル ファイルをレンダリングさせるためのいくつかのオプションを示します。
Python 2cd /path/to/your/folder を使用します。
ディレクトリをファイル
some.htmlまたはファイルが存在するフォルダーに変更します
python -m SimpleHTTPServer
を使用して、Python Web サーバーを起動します。
http://localhost:8000
でディレクトリ リスト全体をホストする Web サーバーが起動します。
カスタム ポートを使用できます- python -m SimpleHTTPServer 9000
このメソッドは、Python インストールに組み込まれています。リンクが表示されます:
http://localhost:9000python3 -m http.server
VSコードを使用する場合は、Live Server 拡張機能をインストールして、ローカル Web サーバー環境を提供できます。 Node.js
または、より応答性の高いセットアップが必要で、すでに Nodejs を使用している場合...
「- npm install -g http-server
- some.html
http-server -c-1- を発行して http サーバーを起動します。
これにより、Node.js httpd が開始され、ディレクトリ内のファイルが静的ファイルとして提供されます。
http://localhost:8080
から入手できます。」と入力して、
http-server
をインストールします。
がある作業ディレクトリに切り替えます。
ルビー
あなたの好みの言語が Ruby なら...Ruby の神様は、これもうまくいくと言っています:
リーリーPHP
もちろん、PHP にもソリューションがあります。
リーリー私の水晶玉は、
##したがって、ローカル PC に Web サーバーをインストールするか、モデルを別の場所にアップロードして jsonp を使用し、URL を http://example.com/path/to/modelfile://
またはC:/
を使用してモデルをロードしていると言っていますが、これは http:// # ではないため、エラー メッセージと一致します。に変更することができます。
Origin はRFC-6454 で として定義されています リーリー
したがって、ファイルが同じホスト (localhost
) からのものであっても、スキームが異なる限り (
http/
file)、それらは異なるものとみなされます。 )の由来。