【JavaScript:編譯錯誤】Image from origin 'file://' has been blocked from loading by Cross-Origin Resource
問題描述:
Image from origin 'file://' has been blocked from loading by Cross-Origin Resource Sharing policy: Received an invalid response. Origin 'null' is therefore not allowed access.
中文翻譯:來自“file://”的影象已被跨源資源共享策略阻止載入:收到無效響應。 因此不允許原點'null'訪問。
當時直接用chrome瀏覽器開啟three.js中的example中的 .html檔案。【比如webgl_materials_texture_anisotropy.html】
正常的:
斷點:
three.js 中34444 行: var image = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'img' );
html中117行:var texture1 = textureLoader.load( "textures/crate.gif" );
html中124行:var texture2 = textureLoader.load( "textures/crate.gif" );
發現可能是“非同步載入”的原因,導致html中載入的函式都執行好一段時間後才報錯,並且除了部分沒顯示,其他內容都正常顯示了。
問題分析:
可能還是JavaScript限制了讀取本地檔案的問題。
解決方法:
1、在chrome快捷方式中的屬性中新增上--allow-file-access-from-files 這個命令列引數。
但是這個方法是不一定好,必須手動修改快捷方式的內容。
不知道是否可以通過程式碼設定來處理。這樣不需要客戶都修改自己的瀏覽器引數。
而且這個讀取本地檔案的方法是否會應生出其他不安全的隱患?