![](/img/trans.png)
[英]MIME type ('application/json') is not executable, and strict MIME type checking is enabled
[英]Disable Chrome strict MIME type checking
有什么方法可以在 Chrome 中禁用strict MIME type checking
。
实际上,我正在跨域发出 JSONP 请求。 它在 Firefox 上运行良好,但是,在使用 chrome 时,它在控制台中出现了一些错误。
拒绝执行来自“ https://example.com ”的脚本,因为其 MIME 类型(“text/plain”)不可执行,并且启用了严格的 MIME 类型检查。
它在 Mozilla 中完美运行.. 问题仅在 chrome 中出现
这是请求的响应标头..
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
就我而言,我关闭了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 也一样。
<IfModule mod_headers.c>
#Header set X-Content-Type-Options nosniff
</IfModule>
对于 Windows 用户:
如果此问题发生在您的自托管服务器(例如:您的自定义 CDN)上,并且浏览器 (Chrome) 显示类似... ('text/plain') is not executable ...
在尝试加载您的 javascript 文件时.. .
这是你需要做的:
Win + R > regedit
HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\.js
application/javascript
application/javascript
试也有过同样的问题,
如果您无法解决问题,您可以在命令行上运行以下命令chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
注意:您必须导航到 chrome 的安装路径。
例如: cd C:\\Program Files\\Google\\Chrome\\Application
将打开开发者会话 chrome 浏览器,您现在可以在新的 chrome 浏览器上启动您的应用程序。
我希望这会有所帮助
我在var.js
文件中使用php
和这个.htaccess
。
<Files var.js>
AddType application/x-httpd-php .js
</Files>
然后我在 .js 文件中编写 php 代码
<?php
// This is a `.js` file but works with php
echo "var js_variable = '$php_variable';";
当我在 Chrome 上收到 MIME 类型警告时,我通过在.js(but php)
文件中添加Content-Type
标题行来修复它。
<?php
header('Content-Type: application/javascript'); // <- Add this line
// This is a `.js` file but works with php
...
浏览器不会执行.js
文件,因为 apache 将文件的Content-Type
标头作为在.htaccess
定义的application/x-httpd-php
。 这是一个安全原因。 但是 apache 不会执行 php 就htaccess
命令模拟而言,这是必要的。 所以我们需要用 php 函数header()
覆盖 apache 的Content-Type
头。 我猜当 php 发送它而不是之前的 apache 时,apache 停止发送它自己的标头。
如果您使用的是node.js(带有 express)
如果你想在 node.js 中提供静态文件,你需要使用一个函数。 将以下代码添加到您的 js 文件中:
app.use(express.static("public"));
应用程序在哪里:
const express = require("express");
const app = express();
然后在您的项目文件夹中创建一个名为 public 的文件夹。 (您可以将其称为其他名称,这只是一个很好的做法,但请记住也要从函数中更改它。)
然后在此文件中创建另一个名为 css 的文件夹(和/或 css 下的图像文件,如果您还想提供静态图像。)然后将您的 css 文件添加到此文件夹中。
添加它们后,相应地更改样式表。 例如,如果它是:
href="cssFileName.css"
和
src="imgName.png"
让他们:
href="css/cssFileName.css"
src="css/images/imgName.png"
这应该有效👌🏽
在 node.js 的 get 处理程序中将路由名称更改为单个路由我的 app.get('/all-produce/search',(req,res)) 不起作用,但我将其更改为 app.get('/getProduce ',(req,res)) 和与 html 链接的 CSS 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.