本文最后更新于 573 天前,其中的信息可能已经有所发展或是发生改变。
[WEB]对于”Refused to execute script from ‘http://xx.xx.xx/yy/zz.js’ because its MIME type (”) is not executable, and strict MIME type checking is enabled.”问题的解决办法
问题由来
前因:对nginx的header设置了安全头
本周安全同事反馈有响应头的X-Content-Type-Options
设置不合理,我看了下是nginx配置问题多了一个冒号,于是就打算全部修改正确。
后果:技术反馈有一服务报错”Refused to execute script from ‘http://xx.xx.xx/yy/zz.js’ because its MIME type (”) is not executable, and strict MIME type checking is enabled.”
上午全部修改完,下午技术就群里反馈web服务通过js的ajax请求发出的动态式加载的静态文件加载不出来了。经过一番排查,发现浏览器报了这个错,顺便还给吊了一顿,行吧接锅小能手可不是吹的。
原因分析
那么,是什么原因导致的?咱们先翻译翻译下面这段报错信息:
通过使用gpt查询得出:
说人话就是与文件类型本身(application/javascript; text/css)不匹配,被禁止加载。
解决方案
方案1: Nginx取消 X-Content-Options:nosniff 配置
就是取消add_header X-Content-Type-Options "nosniff" always;
配置