![](/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.