web-dev-qa-db-ja.com

Chrome厳密なMIMEタイプチェックを無効にする

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

私が考えていることの回避策:content-typeをapplication/javascriptに外部設定する

43
Atul Sharma

サーバーはJSONP application/javascriptの正しいMIMEタイプで応答する必要があり、リクエストはJSONP dataType: 'jsonp'をロードしていることをjQueryに伝える必要があります

詳細は この回答 をご覧ください! これを見てください.jsファイルをtext/plainでロードできない理由を説明しているので、これもできます。

10

私の場合、X-Content-Type-Options on nginxをオフにすると正常に動作します。ただし、これによりセキュリティレベルが少し低下することを確認してください。一時的に修正されます。

# 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>
6
kujiy

また同じ問題が一度ありました

問題を解決できない場合は、コマンドラインで次のコマンドを実行できます
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

注:Chromeのインストールパスに移動する必要があります。
例:cd C:\Program Files\Google\Chrome\Application

開発者セッションchromeブラウザーが開きます。新しいchromeブラウズでアプリを起動できます。
これが役立つことを願っています

0
Fresher