拒绝执行脚本,是否启用了严格的MIME类型检查?

时间:2016-11-13 13:06:47

标签: javascript json

为什么我在控制台中收到此错误?

  

拒绝执行脚本   ' https://www.googleapis.com/customsearch/v1?key=API_KEY&q=flower&searchType=image&fileType=jpg&imgSize=small&alt=json'   因为它的MIME类型(' application / json')不可执行,并且   启用了严格的MIME类型检查。

16 个答案:

答案 0 :(得分:42)

您有一个<script>元素试图加载一些外部JavaScript。

您提供的URL指向JSON文件而不是JavaScript程序。

服务器正确地报告它是JSON,因此浏览器正在使用该错误消息中止而不是尝试将JSON作为JavaScript执行(这会引发错误)。

可能的根本原因是你正在尝试发出一个Ajax请求,已经命中cross origin error并试图通过告诉jQuery你正在使用JSONP来修复它。这仅在URL提供JSONP(JavaScript的不同子集)时才有效,而这不是。

带有附加查询字符串参数callback=the_name_of_your_callback_function的相同网址确实会返回JavaScript。

答案 1 :(得分:41)

在我的情况下,它找不到文件,我错误地输入了javascript文件的路径。

答案 2 :(得分:19)

此结果是第一个在谷歌中弹出的结果,并且比这里发生的更广泛。以下内容适用于快速服务器

我试图从嵌套文件夹中访问资源。

index.html里面我有

<script src="./script.js"></script>

静态路由安装在:

app.use(express.static(__dirname));

script.js位于嵌套文件夹中,如下所示:js/myStaticApp/script.js refused to execute script, meme type checking is enabled. 我刚刚将静态路由更改为:

app.use(express.static(path.join(__dirname, "js")));

现在有效:)

答案 3 :(得分:5)

如果使用的是Node.js,请尝试使用 express.static()

您只需要将保存静态资产的目录的名称传递给express.static中间件,即可开始直接提供文件。例如,如果将图像,CSS和JavaScript文件保存在名为public的目录中,则可以执行以下操作-

即: app.use(express.static('public'));

这种方法解决了我的问题。

谢谢

答案 4 :(得分:3)

搜索了一段时间后,我意识到Windows 10 64位中的此错误与JavaScript有关。为了查看此内容,请转到浏览器DevTools并首先确认。在我的情况下,它显示类似“ MIME类型('application / javascript')不可执行”之类的错误。

如果是这种情况,我已经找到了解决方案。这是交易:

  1. https://github.com/jupyterlab/jupyterlab/issues/6098上借用用户“ ilango100”:

前段时间我遇到了完全相同的问题。我认为此问题特定于Windows。这是由于在Windows注册表中为javascript文件设置了错误的MIME类型。我通过使用正确的内容类型编辑Windows注册表解决了该问题:

regedit-> HKEY_LOCAL_MACHINE \ Software \ Classes->您将看到每个文件扩展名的文件夹很多->只需向下滚动到“ .js”注册表并选择它->在右侧,如果“ Content Type”值不是应用程序/ javascript,那么这就是引起问题的原因。右键单击“内容类型”,然后将值更改为application / javascript

enter image description here

在浏览器中重试。”

之后,我意识到错误发生了变化。它甚至不会在浏览器中自动打开。但是,PGAdmin将在侧栏上打开(靠近日历/时钟)。通过尝试直接在浏览器中打开(“ New PGAdmin 4窗口...”),它也不起作用。

最终解决方案:单击“复制服务器URL”,然后将其粘贴到浏览器中。它对我有用!

答案 5 :(得分:2)

就我而言,我正在处理遗留代码

我有这行代码

<script type="text/javascript" src="js/i18n.js.php"></script>

我对这应该如何工作感到困惑,这段代码调用的是 PHP 文件而不是 js

尽管它在实时服务器上运行

但是我在舞台服务器上有这个错误

内容类型是

content-type: text/html; charset=UTF-8

enter image description here

即使是脚本标签中的text/javascript

在我添加之后

header('Content-Type: text/javascript');

文件的开头 i18n.js.php

错误已修复

enter image description here

答案 6 :(得分:1)

Python烧瓶

Windows 上,它使用注册表中的数据,因此,如果HKCR / .js中的“内容类型”值未设置为正确的MIME类型,则可能会引起问题。

打开 regedit 并转到 HKEY_CLASSES_ROOT ,确保键 .js / Content Type 的值为 text / javascript < / strong>

C:\>reg query HKCR\.js /v "Content Type"

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript

答案 7 :(得分:0)

将如下所示的代码段添加到条目html中。即reactjs中的“ index.html”

<div id="wrapper"></div>
<base href="/" />

答案 8 :(得分:0)

我遇到了同样的问题,问题在于我在路径中缺少斜线。

我有

并修复它,我只需要在jquery-ui和jquery-ui.min之间添加斜杠:

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

希望这会有所帮助:D

答案 9 :(得分:0)

我不小心将js文件命名为localhost:4200/main/而不是@Override public void configure(StateMachineConfigurationConfigurer<States, Events> config) throws Exception { config .withVerifier() .enabled(true) .verifier(cusomVerifier()); } @Bean public StateMachineModelVerifier customVerifier() { return new CustomVerifier(); } class CustomVerifier extends DefaultStateMachineModelVerifier { @Override public void verify(StateMachineModel model) { super.verify(model); // call the existing sanity check model verifier Collection<StateData<State, Event> statesData = model.getStatesData().getStateData(); //log your stuff } } ...

答案 10 :(得分:0)

我的网络服务器返回了:

Content-Type: application\javascript

并且我终其一生都无法弄清楚出了什么问题。然后我意识到我的斜线方向错误。应该是:

Content-Type: application/javascript

答案 11 :(得分:0)

我的问题是我一直将 CSS 文件放在脚本定义区域的末尾上方 尝试检查页面中的文件位置

答案 12 :(得分:-1)

如果您有快递路线,例如:

app.get("*", (req, res) => {
  ...
});

尝试将其更改为更具体的内容:

app.get("/", (req, res) => {
  ...
});

例如。

否则,您可能会发现自己一次又一次地递归地提供相同的HTML模板...

答案 13 :(得分:-1)

我遇到了同样的问题,然后我就这样解决了

change "text/javascript"

type="application/json"

答案 14 :(得分:-2)

在我的情况下,我有一个针对404文件的符号链接,而我的Tomcat未配置为允许符号链接。

我知道这对大多数人来说不太可能是原因,但如果您拼命,请检查这种可能性,以防万一。

答案 15 :(得分:-13)

我通过将$ {pageContext.request.contextPath}添加到我的jsp路径来解决了我的问题。 而不是:

 <script    src="static/js/jquery-3.2.1.min.js"></script>

我设置:

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>