0

我正在使用 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 上,发出签名断言后它不会继续连接。

我怎样才能解决这个问题,或者有没有办法绕过证书问题?

感谢所有建议。

4

2 回答 2

0

这听起来不标准,所以我认为你最好的办法是与 IDP 提供商交谈。

于 2013-04-15T09:48:36.307 回答
0

我发现问题是 iOS 无法调用 https ajax 调用自签名证书。这似乎是一个 SDK 限制,您将需要一个插件或在您的 appdelegate.m 中添加以下代码

@implementation NSURLRequest(DataController)

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

我发现这篇文章很有帮助,在 iOS 中使用 PhoneGap 的 Ajax https 调用不起作用?

然后它神奇地起作用了。

于 2013-04-18T03:02:50.160 回答