我最近将xCode更新为版本7,看来该更新打破了Cordova应用程序中的$ .ajax()调用。我使用HTTP scoop来尝试查看正在尝试调试的调用类型,但它看起来甚至没有尝试进行Web服务调用。我知道这个应用程序在XCode(和iOS)更新之前有效。
Web服务正在使用HTTP,我确实看到一些关于iOS9中不再允许的内容。我试图添加' NSAllowArbitraryLoads = true'字符串到我的info.plist文件,但似乎没有什么区别。
提前致谢!
答案 0 :(得分:2)
您是否正确添加了此内容? Xcode 7将使用iOS 9,默认情况下不允许HTTP后端调用,除非使用NSAllowsArbitraryLoads覆盖,如您所述。 (注意你把它拼写为错误,因为NSAllowArbitraryLoads 并且缺少's')
以下是您的应用信息.plist更改的实际示例:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
这是一个脚本,您可以将其用作iOS的预构建钩子来自动执行此操作:
#!/bin/bash
echo“为App Transport Security异常调整plist。” val = $(/ usr / libexec / plistbuddy -c“添加NSAppTransportSecurity:NSAllowsArbitraryLoads bool true”platforms / ios / PROJECTNAME / PROJECTNAME-Info.plist 2&gt; / dev / null) 回声“完成”
只需将PROJECTNAME替换为项目名称即可。