2016-12-04 9 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

相关问题