如何抑制SSL错误,当AJAX请求与无效证书的服务器(How to suppress SSL err

2019-09-16 12:07发布

我有这样的代码:

function newXMLHttpRequest() {
    var xmlHttp;
    try {
        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (f) {
            xmlHttp = new XMLHttpRequest();
        }
    }
    return xmlHttp;
}
var xmlHttp = newXMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = function() {
    // this I have xmlHttp.status = 12019        
    alert("readyState = " + xmlHttp.readyState + "\nstatus = " + xmlHttp.status);
}
xmlHttp.send('same data');

当我送请求无效证书的服务器我有错误,状态码12019。

解决方案应该是跨浏览器(IE,FF,铬)

Answer 1:

首先,回答标题中的问题,这无法做到的。 客户端XMLHTTP库不允许客户端忽略SSL错误。 所述MsXml2.ServerXMLHTTP 对象确实允许一个忽略SSL错误与所述setOption(2, 13056) 的方法 。 然而,该对象不能被一个浏览器中使用的,也不是跨平台的。

这就是说,有似乎是另一个问题。 在12019种状态并不表示一个无效的认证。 的HTTP 403状态码,或许多“的一个变种一些无效认证 ”的代码会在这种情况下,可以预期的。

你的12019状态代码表示:

ERROR_INTERNET_INCORRECT_HANDLE_STATE

12019

请求的操作不能进行,因为提供的手柄是不正确的状态。

不幸的是这个状态码并没有真正沟通多了,不知道什么样的IE版本,并详细了解该服务器有没有更多的去。 我检查了一些论坛帖子。 其中指出切换到IIS固定问题, 另一个说,可能不会被覆盖导致问题的临时文件。 大多数职位然而,没有一个满意的,还是定论。



文章来源: How to suppress SSL error when AJAX request to the server with invalid certificate