解決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中文網其他相關文章!