我正在使用Phonegap和jQuery AJAX调用来执行下面的注销
$.ajax({
url: logoutURL,
type: "POST",
data: {},
cache: false,
success: function(data, textStatus, jqXHR){........},
error: function(jqXHR, textStatus, errorThrown){
alert("Logout Failed.");
$.mobile.hidePageLoadingMsg();
enableAllButtons();
}
});
注销URL是SAML 2.0单点注销(SLO)URL。我在Android上测试了它,它工作得非常好。但是,当我在ios专门试用iPad ios 6.1.3上的SLO时,它会失败,它会返回一个http 0。
我刚从IDP日志中发现,对于android,它有“客户端证书错误,IP地址”的警告,但它会自动尝试创建没有可信证书的传出SSL连接。另一方面,在iOS上,签名断言发布后,它不会继续连接。
如何解决这个问题,或者我有办法绕过证书问题吗?
所有建议都表示赞赏。
答案 0 :(得分:0)
这听起来不合标准,所以我认为你最好的机会是与IDP提供商交谈。
答案 1 :(得分:0)
我发现问题是iOS无法调用https ajax调用自签名证书。它似乎是SDK限制,您需要一个插件或在appdelegate.m中添加以下代码
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end
我发现这篇文章有用Ajax https call in ios using PhoneGap not working?
然后它神奇地工作了。