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 类型的安全风险
相关推荐
如果在打包过程中遇到问题,例如webpack-dev-server的版本问题,可以参考github上webpack的Issues板块寻求解决方案。 5. 配置Babel 在项目的根目录下找到.babelrc文件,该文件是Babel的配置文件。若经过以上步骤...
- 查阅官方文档或社区资源:如GitHub上的开源项目问题追踪,Stack Overflow等,寻找相似问题的解决方案。 总的来说,遇到`npm install`报错时,首先要读懂错误信息,然后根据上述方法进行排查。通常,大多数问题都...
本篇文章将针对“npm install报错”的问题提供最全面的解决方案,帮助1-3年工作经验的前端人员解决困扰。 1. **错误类型识别**: - EACCESS:权限不足,可能是因为试图写入受保护的系统目录。 - ENOENT:找不到...
在前端开发过程中,遇到错误是常有的事情,但这些问题都有其特定的原因和解决方案。下面将对标题和描述中提到的一些常见问题进行详细解释,并提供相应的解决办法。 问题1:运行不了解决办法 当遇到“运行不了”的...
Vue.js项目打包后上传到GitHub并实现GitHub Pages预览是一个常见的流程,这使得开发者能够方便地分享和展示自己的作品。以下是一份详细的步骤指南,涵盖了从打包Vue项目到在GitHub Pages上预览的过程,以及解决可能...
4. **处理全局配置文件`:global.json`**: 如果在尝试生成解决方案时,出现与全局配置文件`global.json`有关的错误,可能需要删除或重命名该文件。`global.json`通常用于指定特定的.NET SDK版本,如果版本不匹配或者...
总结来说,解决`npm i robotjs`在Windows系统上的安装问题,可以尝试手动复制预编译的`robotjs`文件到`node_modules`目录,这是一种快速且实用的解决方案,特别是对于遇到编译问题或网络问题的开发者。同时,确保你...
此外,查阅Axios的官方文档和GitHub仓库中的issue,看看是否有人遇到过类似问题并找到了解决方案。如果问题仍然无法解决,考虑创建一个新的问题,提供详尽的错误信息和复现步骤,以便社区成员能够帮助你。 总的来说...
参与ExtJS的论坛或者GitHub上的讨论,通常可以获得针对特定问题的解决方案。 7. **代码审查**:默认.js文件可能是应用的核心脚本,审查这部分代码,确保没有违反浏览器兼容性的做法。 8. **UserAction.java**:这...
本文将重点讲解如何解决Vue项目中出现的这个报错问题。 首先,我们分析错误产生的原因。在提供的描述中,作者提到是因为频繁更换网络环境,导致需要在`package.json`的`dev`脚本中更改`--host`参数。在开发过程中,...
5. **查阅文档和社区资源**:如果问题依然存在,可以查阅stanfordCoreNLP的官方文档或相关社区(如CSDN、Stack Overflow等)寻找解决方案。其他开发者可能已经遇到并解决了类似的问题。 总的来说,处理这类错误需要...
通过其模板驱动的设计,JSON数据存储,以及静态站点生成的特性,Vapid提供了一种高效且安全的网站开发和托管解决方案。无论你是独立博主、小企业主还是开发者,Vapid都能帮助你快速、有效地创建个性化的在线存在。
2. 第二种解决方案 ,看另一句报错,资源被墙。 ``` Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.2/win32-x64-48_binding.node Cannot download ...
但Web浏览器还不支持H.265的解码播放,因此基于Web Assembly(封装FFmpeg)、JS解封装、Canvas投影以及AudioContext实现Web端的H265播放。支持主要浏览器及其版本如下:Chrome(>57)Safari (>11)Firefox (>52)本项目...
3. **更新博客的常见问题及解决方案**: - **本地与远程仓库同步**:确保已正确设置Git,使用`git pull`获取远程仓库的最新版本,`git add`和`git commit`保存更改,最后用`git push`将更改推送到GitHub。 - **...
gnvm-0.2.0为Windows开发者提供了便捷的Node.js版本管理解决方案,简化了开发环境的维护工作,使开发者能够更专注于代码编写。对于经常需要在多个项目间切换或测试不同Node.js版本的开发者来说,gnvm无疑是一个不可...
本文介绍了出现该问题的原因及解决方案。 报错信息 当我试图使用mysql模块来连接MySQL 8时,出现了如下错误信息: D:\workspaceGithub\nodejs-book-samples\samples\mysql-demo\index.js:17 throw error; ^ Error:...
本文主要探讨了npm在国内安装失败时的一些解决方案,特别是如何利用国内镜像来提高安装的成功率。 首先,npm安装失败的主要原因通常与网络连接不稳定、下载速度慢或者服务器访问受限有关。为了解决这些问题,可以...
为了解决这一问题,百度地图提供了离线地图解决方案,使得用户即使在无网络环境下也能查看地图数据、进行导航等功能。 #### 二、百度离线地图开发基础知识 1. **离线地图的基本概念**:离线地图是指预先下载到本地...