由于MIME类型,浏览器不会加载带.objjs扩展名的文件

时间:2016-12-04 22:35:42

标签: javascript html webstorm mime-types src

我在我的Windows 8分区上的Chrome和我的Ubuntu 14.04分区的Firefox中运行此代码。两者都给我提供与MIME类型相关的错误消息。

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

注意:类型似乎并不重要,我已尝试type=text/javascripttype=application/javascripttype=javascript,而根本没有输入,我仍然会收到相同的错误消息。

Windows上Chrome的错误消息是

  

拒绝执行脚本   http://localhost:63342/***/GraphicsTownJS2015-master/resources/cube.objjs   因为它的MIME类型('application / octet-stream')不可执行,   并且启用了严格的MIME类型检查。

Ubuntu上的Firefox错误消息是

  

来自的资源   http://localhost:63342/***/GraphicsTownJS2015-master/resources/cube.objjs   由于MIME类型不匹配而被阻止(X-Content-Type-Options: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运行此代码。关于我能做些什么来解决这个问题的任何想法?

这是生成objjs文件的webapp的github页面 https://github.com/Squeakrats/OBJLoader

1 个答案:

答案 0 :(得分: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