【发布时间】:2015-10-11 15:45:02
【问题描述】:
我是第一次使用 Cordova(不是 Phonegap!),我的应用在 Android 上运行良好,但在 iOS 上无法访问外部服务器进行 ajax 调用。 我加了
<access origin="*" />
到 config.xml 没有任何成功。我能找到的所有解决方案都只能在 Phonegap 中使用。有谁知道如何解决这个问题?甚至可能是 Xcode 中的设置?非常感谢!
【问题讨论】:
我是第一次使用 Cordova(不是 Phonegap!),我的应用在 Android 上运行良好,但在 iOS 上无法访问外部服务器进行 ajax 调用。 我加了
<access origin="*" />
到 config.xml 没有任何成功。我能找到的所有解决方案都只能在 Phonegap 中使用。有谁知道如何解决这个问题?甚至可能是 Xcode 中的设置?非常感谢!
【问题讨论】:
在过去两 (2) 周内,Cordova 进行了一些重大更改。文档没有赶上。我不认为它会赶上至少几个星期。您有两 (2) 个选项:
white-list
我推荐#2。
来自Top Mistakes by Developers new to Cordova/Phonegap,您已点击:
#6 & #7
使用 CLI 版本,如果您没有为您的平台或“Phonegap Build”分配版本,如果您没有在 config.xml 中设置 phonegap-version,您将获得最新版本。如果幸运的话,您的程序会按预期运行。如果你不走运,你会得到一系列级联错误。
幸运的是,Holly Schinsky 写了一篇很好的博文来解释这一切:
Cordova/PhoneGap 版本混乱
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
#10
这个相对 * 新 * 要求意味着——要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用的是 cordova-android@4.0.0 或更高版本,此要求将生效;包括 cli-5.1.1 和 cli-5.2.0。但是,如果您的版本是 4.0.0 之前的版本,比如 3.5.0 或 3.7.0,那么您将不必添加白名单要求。 p>
需要明确的是,“白名单”已经存在了一段时间,但插件和要求是非常新的。如您所料,当添加“白名单”时,事实上的开放访问功能已被弃用。或者换一种说法,事实上的开放访问功能是计划和计划取消的。这一变化标志着在移除开放获取功能方面迈出了一步。
此外,内容安全政策 (CSP) 吸引了众多开发人员 - 因为它的宣传太差了。 根据您的使用情况和您使用的Phonegap 版本,CSP 需要进入您使用的每一个HTML 页面,就像您必须等待'deviceready' 一样。但是,在某些情况下根本不需要它。文档让一些人感到困惑,请仔细阅读。 该文档隐藏在许多最新文档页面的底部。
相关链接
Phonegap 构建论坛:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单
- Cordova Whitelist Guide
- Phonegap Whitelist Guide
- Phonegap Build Whitelist Guide
- White-list Plugin - 阅读底部部分以了解有关 CSP 的说明
【讨论】: