cordova:Ajax调用不工作在iOS上,在Android上工作正常

我正在与cordova第一次(不Phonegap!)和我的应用程序在Android上工作正常,但无法访问外部服务器的iOS上的Ajax调用。 我补充说

<access origin="*" /> 

到config.xml没有任何成功。 我能find的所有解决scheme只能在Phonegap中使用。 有谁知道如何解决这个问题? 也许甚至在Xcode的设置? 非常感谢!

@Ben,
在过去的两(2)周里,cordova已经做出了一些重大的改变。 文件没有赶上。 我不认为它会赶上至less几个星期。 您有两(2)个选项:

  1. 将您的编译器版本设置为Cordova 4.0.0之前的版本
  2. 按照完整的协议使用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