2012-02-14 136 views

回答

11

您还没有在服务器上说明这种证书。我怀疑它是自签名的。我也有同样的问题。 对具有自签名认证的服务器执行Ajax调用是不可能的,这是一个SDK限制。你必须编写一个Objective C插件来解决这个问题。

+0

大乔丹!你说得对,我正在使用自签名证书。环顾四周写一个插件来满足需要。感谢您的时间和答案。 – 2012-02-16 04:54:57

+0

http://blog.clearlyinnovative.com/post/1012434483/phonegap-and-iphone-development - 看看这个链接是否可以帮助。它适用于旧版本。附: nt我的博客只是发现它有关。 – 2012-03-23 18:19:32

36

你有没有试着在你的末尾添加该文件AppDelegate.m

@implementation NSURLRequest(DataController) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host 
{ 
    return YES; 
} 
@end 
+2

伟大的:)它帮助了我很多。 – 2013-03-26 09:52:59

+0

你救了我的一天! – 2013-06-27 16:23:51

+2

..几乎...... :(有趣的是,当我使用IOS模拟器时,它工作,但在iPad上,我仍然无法通过https和自签名证书访问我的REST api。 – 2013-06-27 17:04:52

3

TDeBailleul,

你的代码似乎对Web服务器的匿名方面的工作,但不在基本/ NTLM授权的授权区域(cgi.auth_user)为自己工作。

PhoneGap for iOS常见问题 问:我可以使用具有自签名证书的服务器来执行AJAX吗? 答:不,这是UIWebview的iOS SDK限制。你将不得不编写一个Objective-C插件。

http://wiki.phonegap.com/w/page/41631150/PhoneGap%20for%20iOS%20FAQ