谷歌,火狐提示來自"http://xxx.com/file"的資源已被阻止,因為 MIME 類型("text/plain")不匹配(X-Content-Type-Options: nosniff),如何解決?


  在使用ueditor編輯的過程中無法上傳圖片,谷歌火狐瀏覽器提示Cross-Origin Read Blocking (CORB) blocked cross-origin response http://XXX?action=config&callback=bd__editor__dkhbuv with MIME type text/plain,怎么解決?
查看該文件請求,發現服務器返回頭中多了這么個玩意 X-Content-Type-Options: nosniff,這個是什么意思呢?

 

   查閱資料X-Content-Type-Options: nosniff,文檔:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Content-Type-Options,看了之后還是有點懵逼。查了資料還是簡單備注下該玩意:

  服務器發送響應頭 "X-Content-Type-Options: nosniff",則 script 和 styleSheet 元素會拒絕包含錯誤的 MIME 類型的響應。這是一種安全功能,有助於防止基於 MIME 類型混淆的攻擊,過濾掉不安全的文件。即服務器發送含有 "X-Content-Type-Options: nosniff" 標頭的響應時,此更改會影響瀏覽器的行為。影響行為如下:

  對於樣式文件:如果通過 styleSheet 參考檢索到的響應中接收到 "nosniff" 指令,則 瀏覽器 不會加載“stylesheet”文件,除非 MIME 類型匹配 "text/css"。

   對於js文件:如果通過 script 參考檢索到的響應中接收到 "nosniff" 指令,則 瀏覽器不會加載"script"文件,除非 MIME 類型匹配以下值之一:

    "application/ecmascript"  或  "application/javascript"   或  "application/x-javascript"   或 "text/ecmascript"  或  "text/javascript"       "text/jscript"     "text/x-javascript"    "text/vbs"    "text/vbscript"

  

  從上面可以看出對於此問題需要服務器端解決:

    第一種方式:X-Content-Type-Options 頭設置允許加載靜態資源文件

      由於咋后台是用的java 的 springboot ,因此設置  http.headers().contentTypeOptions().disable(); 允許加載靜態資源就可以

    第二種方式

      讓后台改變響應頭:Content-Type: application/javascript ,如下:

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM