错误:Phonegap中的白名单拒绝

时间:2012-05-29 08:31:12

标签: iphone html5 cordova whitelist

我是移动开发的新手。我正在使用Phonegap / Cordova创建一个跨平台的应用程序。我的代码在Android上运行良好,但当我将其移植到iPhone时,它显示错误:

[143:2003] ERROR whitelist rejection: url="abc"

现在我能解决这个问题吗?

7 个答案:

答案 0 :(得分:55)

  

注意:此答案仅适用于PhoneGap 1.x及更低版本。从版本2.x开始,白名单配置通过cordova.xml完成。

您必须将允许的URL添加到PhoneGap.plist(或Cordova.plist)的ExternalHosts数组中。

例如,如果您想允许访问此网址http://www.myhost.com/path/file,请将www.myhost.com添加为ExternalHosts数组的新条目。

如果您想允许访问Google所有子域的内容(例如maps.google.commails.google.com),您可以将*.google.com添加为ExternalHosts的新条目阵列。

我不知道为什么你会在链接中获得“abc”。你有“abc”作为任何东西的链接吗?它是URI片段吗?

答案 1 :(得分:32)

在PhoneGap 3.0中,您需要编辑Project文件夹中的config.xml(注意:不是www / config.xml)

<access origin="*" />

答案 2 :(得分:18)

在PhoneGap 3.0中,您需要修改www/config.xml,并添加/修改<access>标记。例如,如果要允许所有内容,请将标记更改为:

<access origin="*" />

答案 3 :(得分:8)

您可以在Cordova.plist文件中添加以下代码:

<key>ExternalHosts</key>
       <array>
               <string>*.facebook.com</string>
       </array>

*.facebook.com作为域名,您可以使用两个不同的子域。

答案 4 :(得分:3)

您必须拥有域名白名单,以便访问http://google.com等外部域名。

在iOS(Cordova&gt; 3.0.0)中,白名单规则位于AppName/config.xml中,并使用元素<access origin="..." />声明

您还可以使用通配符来声明域。例如,要允许访问Google的所有子域和顶级域名(.com,.net等),请使用*.google.*

参考:Domain Whitelist Guide

答案 5 :(得分:1)

即使我遇到了同样的问题......我通过以下方式修复它...在cordova.plist - &gt;在ExternalHosts数组菜单下,将项目添加为*或。所以它允许所有外部链接......如果你不得不一个一个地提到它是 .facebook。,*。google。* etc。

答案 6 :(得分:0)

这是因为phonegap不会使用外部网址。对于2.x以下版本的旧版本,我们需要在cordova.plist中设置网址。

例如:*.google.co.in(你可以把你的网址放在*。这之后)和OpenAllWhitelistURLsInWebView ---到--- YES