我使用 Cordova 3.2 和 jquery mobile 1.3 创建了一个 iOS 应用程序。我使用 jquery ajax 向 RESTfull 服务发送请求以检索/更新信息。
我有很多测试设备,各种 iPhone,具有各种不同的 iOS 版本。在运行 iOS 7 的 iPhone 4S 上,发送任何 ajax 请求时,我都会收到以下错误:
NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
这种情况只发生在这个设备上,在另一台同样运行 iOS 7 的 iPhone 4S 上,它工作得非常好,就像在我使用的所有其他测试设备上一样。
我读到这表明证书在某种程度上无效,既然如此,可以忽略它吗?为什么会影响一台设备?
任何人都可以建议为什么会发生这种情况,以及该设备可能存在哪些不同之处,导致它无法仅在我的一台设备上工作。谢谢
我遇到了类似的问题,但就我而言,在所有设备上,这种情况都会发生,并且仅在使用 https 的 ajax 调用期间发生。
如果是这种情况,在 appDelegate.m 文件末尾添加以下代码将缓解您的问题。
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end
但我确实怀疑,如果它在其他设备上工作,我给出的解决方案可能不会有效。但一定要尝试一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)