我想对使用自签名证书的安全服务器进行AJAX调用。在我的应用程序正在使用的环境中,这很好 – 我可以向用户提供CA证书,并在使用该应用程序之前安装它。但是,有时,用户在安装证书之前尝试访问该应用程序。在这些情况下,该应用程序会静默地失败 – 至少在Firefox(最常见的问题)中,似乎该呼叫静默死机,甚至不会关闭错误处理程序。 FWIW,如果用户访问服务器上的实际页面,则会获得证书警告。
我可能会遇到一个解决方法 – 例如,做出心跳/ ping请求,并设置一个看门狗定时器,看看服务器是否及时响应 – 但是这似乎很好玩。我更愿意提前测试连接。什么是“正确”的方式来确保您要谈话的服务器具有来自Javascript内的可信证书?如果有任何区别,我通过JQuery来做我的AJAX请求。
更新:这里有一个很棒的打法。原来,AJAX根本不是问题。我确信基于与自签名证书有关的症状,但缺乏AJAX错误令人不安,尤其是。在下面的答案中给出了规范链接。另一个团队成员钉住它:AJAX错误处理程序没有被关闭,因为JQuery从未加载!我们从我们网站的另一个子站点(也托管在HTTPS)中包含JQuery,用户已经为我们的www .example.com添加了例外,但不是js.example.com。显然,如果你指向< script>标记在不可信的安全连接,也会默认失败。
{/ headdesk}