2017-06-25 15 views
0

ChromeのMTLファイルをThree.jsで読み込む際に問題が発生しました。 Safariでは正常に動作しますが、Chromeでクロスオリジンのリクエストエラーが発生しています。ローカルファイルに対してこの問題を解決する方法がわかりません。これをChrome上のhttpウェブサイトに公開するとうまくいきます。ChromeのローカルMTLファイルを読み込むThree.js

var mtlLoader = new THREE.MTLLoader(); 
mtlLoader.setPath('assets/'); 
mtlLoader.setBaseUrl('assets/'); 
mtlLoader.load('file.mtl', function(materials) { 
    ... 
}); 

three.js:///.../assets/file.mtl:18280 XMLHttpRequestのファイルをロードすることはできません。 Cross originリクエストは、http、data、chrome、chrome-extension、httpsのプロトコルスキームでのみサポートされています。

+0

多分[このスレッド](https://stackoverflow.com/q/10752055/4045502)が参考になります – prisoner849

答えて

0

これは本当にTHREEjsの質問はありませんが、私はとにかくそれをここにお答えします:

これは、ウェブサイトは、ローカルファイルシステムからファイルを要求できるようにするために本当に安全か許しません。

ウェブサイトがWindowsシステム上でfile:/// C:/ Users/Installation/Pictures /のインデックスを要求した後、すべてのコンテンツをサーバにロードし始めた場合はどうでしょうか?

悪意のあるエージェントが訪問したばかりのコンピュータからファイルを削除する可能性があるため、これは実際には安全ではありません。その結果、ウェブサイトはローカルファイルシステムの外部からファイルを要求することのみが許可されます。

Mampまたは組み込みサーバーエミュレーションBracketsを使用する必要があります。私はMampを使うので、モバイルでのテストも簡単にでき、FTPを使うよりもはるかに高速です。

関連する問題