解决 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中文网其他相关文章!