cordova:Ajax调用不工作在iOS上,在Android上工作正常
我正在与cordova第一次(不Phonegap!)和我的应用程序在Android上工作正常,但无法访问外部服务器的iOS上的Ajax调用。 我补充说
<access origin="*" />
到config.xml没有任何成功。 我能find的所有解决scheme只能在Phonegap中使用。 有谁知道如何解决这个问题? 也许甚至在Xcode的设置? 非常感谢!
@Ben,
在过去的两(2)周里,cordova已经做出了一些重大的改变。 文件没有赶上。 我不认为它会赶上至less几个星期。 您有两(2)个选项:
- 将您的编译器版本设置为Cordova 4.0.0之前的版本
- 按照完整的协议使用
white-list
我推荐#2。
从开发人员的顶尖错误新的cordova/ Phonegap的你有:
- #6 没有为您的编译器设置“phonegap版本”
- #7 不为你的插件设置“版本”
- #10 在config.xml中不添加新的“白名单”和“白名单插件”参数。
#6和#7
使用CLI版本,如果您没有为您的平台指定版本,或者如果您没有在config.xml中设置phonegap版本,则在“Phonegap Build”中指定版本,您将获得最新版本。 如果你幸运的话,你的程序就像预期的那样工作。 如果你不幸运,你会得到一系列的级联错误。
幸运的是,Holly Schinsky写了一篇很好的博客文章来解释这一切:
cordova/ PhoneGap版本混淆
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
#10
这个相对* NEW *的要求意味着 – 访问任何网站或资源在networking上,你必须使用白名单和白名单插件。 如果您使用cordova-android@4.0.0或更高版本,则此要求会生效; 包括cli-5.1.1和cli-5.2.0。 但是,如果你的版本在4.0.0以前,比如说3.5.0或者3.7.0,那么你不需要添加白名单要求。
要清楚的是,“白名单”已经出现了一些,但是插件和要求是非常新的。 正如您所预料的那样,当添加“白名单”时,事实上的开放访问function已被弃用。 或者换句话说,事实上的开放式访问function已经计划好,并计划被淘汰。 此更改标志着删除开放访问function的一个步骤。
此外,内容安全政策(CSP)已经吸引了众多的开发者,因为它被公之于众。 根据您的使用情况和您使用的Phonegap版本,CSP需要进入每个使用的HTML页面,就像您必须等待“已准备就绪”一样。 但是,有些情况下根本不需要。 文档有些令人困惑,请仔细阅读。 文档被埋在许多最新的文档页面的底部。
相关链接
Phonegap生成论坛: 在PGB上升级到cli-5.1.1的注意事项 ,现在需要白名单
- cordova白名单指南
- 电话白名单指南
- Phonegapbuild立白名单指南
- 白名单插件 – READ BOTTOM部分用于指导CSP