首頁  >  文章  >  web前端  >  如何修復 Android Lollipop 及以上版本中的「拒絕載入腳本」錯誤?

如何修復 Android Lollipop 及以上版本中的「拒絕載入腳本」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-10-19 13:03:29991瀏覽

How to Fix

解決Android Lollipop 及以上版本中的「拒絕載入腳本」問題

將應用程式部署到具有Lollipop 或更高版本的Android 裝置時,使用者可能會遇到以下問題:遇到錯誤:「拒絕載入腳本,因為它違反了以下內容安全策略指令。」此問題的出現​​是由於這些版本中實施了更嚴格的內容安全策略。

了解內容安全策略

內容安全策略 (CSP) 是一種限制在網頁上載入外部資源。它有助於防止惡意內容被執行。透過指定一組允許的網域,該策略定義了可以載入哪些腳本、樣式和圖像。

KitKat 和之前的預設策略

在Android KitKat 和早些時候,預設的CSP 是:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

此策略允許來自網站來源(「self」)和一些特定網域的腳本,包括Google Analytics(「https://ssl.gstatic」) .

Lollipop 及以上版本的限制策略

在Android Lollipop 及以上版本中,預設CSP 變得更加嚴格:

<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'; style-src 'self' 'unsafe-inline'; media-src *">

此策略僅允許來自網站來源的腳本,不允許從外部來源載入腳本。

解決方案

要解決此問題,您需要修改 CSP 以允許來自所需域的腳本。在本例中,您希望從「http://Guess.What.com/MyScript.js」載入腳本。

更正的CSP

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; script-src 'self' http://Guess.What.com 'unsafe-inline' 'unsafe-eval'; ">

透過新增行「script-src 'self' http://Guess.What.com 'unsafe-inline' 'unsafe -eval';」對於CSP,您明確允許來自該網域的腳本。

實作修正的 CSP 後,可以成功載入腳本,不會有任何錯誤。

以上是如何修復 Android Lollipop 及以上版本中的「拒絕載入腳本」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn