禁用Chrome严格MIME类型检查

Atu*_*rma 43 javascript jquery google-chrome angularjs

有没有办法strict MIME type checking在Chrome中禁用.

实际上我正在跨域提出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
Run Code Online (Sandbox Code Playgroud)

解决方法我认为:外部设置内容类型为application/javascript

小智 10

服务器应该使用正确的JSONP MIME类型进行响应,application/javascript并且您的请求应该告诉jQuery您正在加载JSONPdataType: 'jsonp'

请参阅此答案以获取更多详细信息!你也可以看一下这个,因为它解释了为什么加载.js文件text/plain不起作用.


小智 8

也曾经遇到过同样的问题,

如果您无法解决问题,您可以在命令行中运行以下命令
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

注意:您必须导航到 chrome 的安装路径。
例如:cd C:\Program Files\Google\Chrome\Application

将打开开发者会话 chrome 浏览器,您现在可以在新的 chrome 浏览器上启动您的应用程序。
我希望这会有所帮助

  • 截至目前,此标志不再用于禁用 MIME 类型检查 (17认同)
  • 也不为我工作... (3认同)

kuj*_*jiy 7

就我而言,我关掉了X-Content-Type-Optionsnginx再正常工作.

# Not work
add_header X-Content-Type-Options nosniff;
# OK (comment out)
#add_header X-Content-Type-Options nosniff;
Run Code Online (Sandbox Code Playgroud)

apache会是一样的.

<IfModule mod_headers.c>
  #Header set X-Content-Type-Options nosniff
</IfModule>
Run Code Online (Sandbox Code Playgroud)

  • 当然,降低网站的安全性,而不是解决实际问题!请参阅:/sf/ask/1283634131/?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa (6认同)

Oze*_*esh 5

对于 Windows 用户:

如果此问题发生在您的自托管服务器(例如:您的自定义 CDN)上,并且浏览器 (Chrome)... ('text/plain') is not executable ...在尝试加载您的 javascript 文件时会说类似的话......

这是你需要做的:

  1. 打开注册表编辑器 Win + R > regedit
  2. 前往 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.js
  3. 检查如果内容类型是application/javascript或不是
  4. 如果不是,则将其更改为application/javascript并重试