Refused to execute script from because its MIME type (text/plain) is not executable, and strict MIME type checking is enabled
今天又与这个问题相遇了,Orz,还是研究一下解决方法和出现原因吧。
刚刚在github上传了一个js文件,想让这个文件被其他网页引用,于是贴出了这个文件的raw版本的地址。但是却就遇到了这样的问题。
这就是出现错误的代码
1 2 3 4 5 6 7 |
<html> <script src="http://droidyue-tools.qiniudn.com/jquery.min.js"></script> <script src="https://raw.githubusercontent.com/androidyue/weekly-scripts/master/javascript/target_blank_link.js"></script> <div> <a href="http://droidyue.com">droidyue.com</a> </div> </html> |
解决方法
将上面的链接中的raw.githubusercontent.com换成rawgit.com即可,此例中的网址最终为https://rawgit.com/androidyue/weekly-scripts/master/javascript/target_blank_link.js
原因
因为raw.githubusercontent.com在Response中设置了X-Content-Type-Options:nosniff ,告诉浏览器强制检查资源的MIME,进行加载。
下面就是未处理的HTTP Response
lineos:false
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
HTTP/1.1 200 OK Date: Sat, 27 Sep 2014 09:27:12 GMT Server: Apache Access-Control-Allow-Origin: https://render.githubusercontent.com Content-Security-Policy: default-src 'none' X-XSS-Protection: 1; mode=block X-Frame-Options: deny X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000 ETag: "4f10b14e4a81a195976ea05787287a019c8bcf6f" Content-Type: text/plain; charset=utf-8 Cache-Control: max-age=300 Content-Encoding: gzip Content-Length: 204 Accept-Ranges: bytes Via: 1.1 varnish X-Served-By: cache-lax1426-LAX X-Cache: HIT X-Cache-Hits: 1 Vary: Authorization,Accept-Encoding Expires: Sat, 27 Sep 2014 09:32:12 GMT Source-Age: 44 Keep-Alive: timeout=10, max=50 Connection: Keep-Alive |
X-Content-Type-Options:nosniff 是神马
1 如果服务器发送响应头 “X-Content-Type-Options: nosniff”,则 script 和 styleSheet 元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME类型混淆的攻击。
2 服务器发送含有 “X-Content-Type-Options: nosniff” 标头的响应时,此更改会影响浏览器的行为。
3 如果通过 styleSheet 参考检索到的响应中接收到 “nosniff” 指令,则 Windows Internet Explorer 不会加载“stylesheet”文件,除非 MIME 类型匹配 “text/css”。
4 如果通过 script 参考检索到的响应中接收到 “nosniff” 指令,则 Internet Explorer 不会加载“script”文件,除非 MIME 类型匹配以下值之一:
- “application/ecmascript”
- “application/javascript”
- “application/x-javascript”
- “text/ecmascript”
- “text/javascript”
- “text/jscript”
- “text/x-javascript”
- “text/vbs”
- “text/vbscript”
该部分参考减少 MIME 类型的安全风险
相关推荐
GitHub 读取jupyter报错Sorry, something went wrong. Reload?
系统环境:CentOS Linux release 7.6.1810 (Core) 起因:npm构建时报错 ... fatal: unable to access 'https://github.com/nhn/raphael.git/': Failed connect to github.com:443; Connection timed out npm
github_ssh拉取github仓库报错connect to host github.com port 22: Connection refused 的解决方法
github github_ssh拉取github仓库报错connect to host github.com port 22_ Connection refused
忘记GitHub登陆密码的解决方案.doc
系统环境:CentOS Linux release 7.6.1810 (Core) 起因:npm构建时报错 ... fatal: unable to access 'https://github.com/nhn/raphael.git/': Failed connect to github.com:443; Connection timed out npm
Github.js是基于JavaScript插件。 它提供了一种简便的方法来在您的网站或产品组合中展示GitHub开源贡献。 演示版 查看实时示例。 #依赖 该插件对 (〜v1.6.0)具有严格的依赖性。 您可以从下载。 安装 将github....
使用battery historian的时候submit按钮总是不显示,查看发现有很多JS报错,无法拉下这些JS文件,于是就把它这些文件下到本地 historian-optimized.js放在compiled目录下 jquery那几个放在third-party/js目录下...
链接GitHub问题引用
转载。旋转验证码识别。 github:双旋转验证码解决方案
方便的在github上学习,方便的在github上学习
Google-Coursera对Git和GitHub的介绍:解决方案
如何在github上传代码(图文解说) 用图文并茂的方式展示了在github上建立项目上传代码的全过程 简单,实用 waylau.com
表格中的几个网站是github的同步镜像网站,均从网络搜集。下面是镜像网站的优点: 一:速度快,能节省打开github网页的时间和下载程序资源的时间。 二:同步性高,提供几乎和github官网一样的内容。 三:部分网站已...
GitHub上的hackerrank解决方案| Java中的hackerrank教程|英特尔:registered:开发人员专区hackerrank 30天的代码解决方案| hackerrank算法解决方案| hackerrank破解编码面试解决方案| hackerrank通用编程解决方案| ...
Github仓库gitclone速度过慢解决方案.docx
首先说一下网上的各种解决方案,如下: 第一种: 说让在本地生成新的公钥,然后复制到github上的设置里的 SSH keys里保存即可。 解释: 首先,这个说法没错,但是网上说的都是本地电脑用ssh方法拉不下来代码,用这个...
] /usr/bin/git clone https://github.com/BaiduLBS/BaiduMapKit.git /var/folders/lh/pfmxmdtd0n1d112fjfjd8zv80000gn/T/d20200114-24662-16wzhc3 –template= –single-branch –depth 1 –branch 5.0.0 Cloning ...
MAC电脑登不上github解决方案.docx
有朋友问, 微信小程序require ('base64.js')文件时,会失败,,, # 分析 事实上,微信小程序require很多JS模块都有不兼容现象。。。先从base64.js这个模块入手吧。 调试出错点: ~~~~ (function(global) { 'use ...