禁用Chrome严格MIME类型检查

有没有办法在Chrome中禁用strict MIME type checking

实际上我正在跨域提出JSONP请求。 它在Firefox上工作得很好但是,在使用chrome时它在控制台中给出了一些错误。

拒绝从’ https://example.com ‘执行脚本,因为其MIME类型(’text / plain’)不可执行,并且启用了严格的MIME类型检查。

它在Mozilla中完美运行。问题仅出现在镀铬中

以下是请求的响应标头..

 Cache-Control:no-cache, no-store Connection:Keep-Alive Content-Length:29303 Content-Type:text/plain;charset=ISO-8859-1 Date: xxxx Expires:-1 Keep-Alive:timeout=5 max-age:Thu, 01 Jan 1970 00:00:00 GMT pragma:no-cache Set-Cookie:xxxx Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options:nosniff X-Frame-Options:SAMEORIGIN 

解决我的想法 :将内容类型外部设置为application/javascript

服务器应该使用JSONP application/javascript的正确MIME类型进行响应,并且您的请求应该告诉jQuery您正在加载JSONP dataType: 'jsonp'

请参阅此答案以获取更多详细信息! 你也可以看一下这个,因为它解释了为什么用text/plain加载.js文件不起作用。

就我而言,我关闭了nginx上的X-Content-Type-Options然后工作正常。

 # Not work add_header X-Content-Type-Options nosniff; # OK (comment out) #add_header X-Content-Type-Options nosniff; 

对于apache来说也是一样的。

  #Header set X-Content-Type-Options nosniff  

一次也有同样的问题,

如果您无法解决问题,可以在命令行上运行以下命令
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

注意:您必须导航到chrome的安装路径。
例如: cd C:\Program Files\Google\Chrome\Application

将打开开发人员会话Chrome浏览器,您现在可以在新的Chrome浏览器上启动您的应用。
我希望这应该有所帮助

文件假装另一个扩展时的另一种解决方案

我使用这个.htaccessvar.js文件中使用php

  AddType application/x-httpd-php .js  

然后我在.js文件中编写php代码

  

当我在Chrome上收到MIME类型警告时,我通过在.js(but php)文件中添加Content-Type标题行来修复它。

  

浏览器不会执行.js文件,因为apache将文件的Content-Type标头发送为.htaccess定义的application/x-httpd-php 。 这是一个安全原因。 但是,只要htaccess命令模仿,apache就不会执行php,这是必要的。 所以我们需要用php函数header()覆盖apache的Content-Type头。 我想,当php发送它而不是apache之前,apache会停止发送它自己的头。