【问题标题】:Phonegap whitelist domains for Android适用于 Android 的 Phonegap 白名单域
【发布时间】:2026-01-08 18:25:01
【问题描述】:

使用 phonegap 版本 6.5.2 我正在尝试将 Android 应用程序的数据和媒体请求的域列入白名单。

在 config.xml 我有:

<access origin="*" />

以及一些特定的域:

<access origin="http://example.com" />
<access origin="http://fonts.googleapis.com" />

我也试过把它放在我的根 index.html 中,应该允许所有域,对吧?:

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

但是当我的应用尝试加载内容时,我仍然只收到 404 错误。

什么给了?

【问题讨论】:

  • 不太确定这是否是 csp 问题。如果是这样,我预计会出现 Refused to load ... 之类的错误,因为它违反了以下内容安全策略指令:...
  • 还有什么可能导致 xhr 和媒体请求上的 404 错误?该应用程序在 iOS 和浏览器中运行良好,所要求的 URL 肯定在那里。我将如何进一步调试以找出阻碍它的原因?
  • 好问题。您可以尝试在没有任何 CSP 的情况下运行您的应用,以确保它是 CSP 问题。
  • @nicholas cordova 白名单插件安装了吗?
  • 我已经尝试取出 config.xml 和 index.html 中的所有 CSP 标签,并在控制台中获取以下行:“加载资源失败:服务器响应状态为 404(不是找到)”。

标签: android cordova content-security-policy phonegap


【解决方案1】:

cordova android app出现404错误的基本规则如下:

  • 检查cordova白名单插件是否安装正确

  • 检查config.xml中允许访问源是否设置正确

  • 检查是否在您的 HTML 中正确设置了内容安全策略 文件

只要请求的 URL 正常运行,这些步骤应该可以解决几乎所有与 404 错误相关的问题。希望能帮助到你。干杯

【讨论】:

    【解决方案2】:

    不确定问题出在哪里,但是在卸载并重新安装白名单插件并重新启动模拟器后,一切似乎都可以正常工作。感谢@Gandhi 为我指明了这个方向。

    【讨论】:

    • 发表了我的回答