2016-12-04 66 views
0

我在我的Windows 8分區的Chrome和我的Ubuntu 14.04分區的Firefox中運行此代碼。兩者都給我與MIME類型相關的錯誤消息。由於MIME類型的原因,瀏覽器不會加載帶有.objjs擴展名的文件

<head> 
     <script type="text/javascript" src="resources/cube.objjs"></script> 
    </head> 

注:該類型似乎並不重要,我已經試過type=text/javascripttype=application/javascripttype=javascript,而不是在所有類型,我仍然得到同樣的錯誤消息。

爲Chrome Windows上的錯誤消息

拒絕從 http://localhost:63342/***/GraphicsTownJS2015-master/resources/cube.objjs 執行腳本,因爲它的MIME類型(「應用程序/八位字節流」)不是可執行文件, 和嚴格的MIME類型檢查是啓用。

而用於Firefox在Ubuntu該錯誤消息是

資源從 http://localhost:63342/***/GraphicsTownJS2015-master/resources/cube.objjs 被阻止由於MIME類型不匹配(X-的Content-Type-選項:nosniff)。

這裏的cube.objjs

var LoadedOBJFiles = LoadedOBJFiles || {} ; 
LoadedOBJFiles["cube_ex.obj"]= {} 
LoadedOBJFiles["cube_ex.obj"].vertices = [[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] 
LoadedOBJFiles["cube_ex.obj"].normals = [[0,0,1],[0,0,-1],[0,1,0],[0,-1,0],[1,0,0],[-1,0,0]] 
LoadedOBJFiles["cube_ex.obj"].texCoords = [] 
LoadedOBJFiles["cube_ex.obj"].groups = {} 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ] = {} 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ].vertices = LoadedOBJFiles["cube_ex.obj"].vertices 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ].normals = LoadedOBJFiles["cube_ex.obj"].normals 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ].texCoords = LoadedOBJFiles["cube_ex.obj"].texCoords 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ].faces = [[[0,null,1],[6,null,1],[4,null,1]],[[0,null,1],[2,null,1],[6,null,1]],[[0,null,5],[3,null,5],[2,null,5]],[[0,null,5],[1,null,5],[3,null,5]],[[2,null,2],[7,null,2],[6,null,2]],[[2,null,2],[3,null,2],[7,null,2]],[[4,null,4],[6,null,4],[7,null,4]],[[4,null,4],[7,null,4],[5,null,4]],[[0,null,3],[4,null,3],[5,null,3]],[[0,null,3],[5,null,3],[1,null,3]],[[1,null,0],[5,null,0],[7,null,0]],[[1,null,0],[7,null,0],[3,null,0]]] 
LoadedOBJFiles["cube_ex.obj"].groups['cube' ].material ='null' 

我正在從WebStorm IDE這段代碼在兩種情況下。任何想法,我可以做些什麼來解決這個問題?

下面是生成的Web應用程序GitHub的頁面objjs文件 https://github.com/Squeakrats/OBJLoader

+0

我覺得這應該是:'resources/cube.obj.js',因爲該文件只是一個JavaSc ript文件(儘管每個語句末尾都沒有分號)。你確定你的文件名是否正確? –

+0

似乎你不能改變內置的MIME類型https://intellij-support.jetbrains.com/hc/en-us/community/posts/206339659-Built-in-Web-Server-settings這意味着你應該要麼將擴展名更改爲'.js',要麼使用更好的網絡服務器。 – zerkms

+0

文件名是正確的,我對此非常有信心。 @zerkms我將如何去尋找一個更好的網絡服務器來使用?另外,感謝您爲我找到我的問題。 –

回答

0

您可以利用fetch()檢索.objjs文件,創建一個<script>元素與.textContent集答應.text()

window.onload =() => { 
    fetch("resources/cube.objjs") 
    .then(response => response.text()) 
    .then(obj => { 
    var script = document.createElement("script"); 
    script.textContent = obj; 
    document.head.appendChild(script); 
    console.log(LoadedOBJFiles); 
    }) 
} 

plnkr的價值http://plnkr.co/edit/WFDIhnsIjYJ8T8ExAdvj?p=preview

相關問題