如何抑制SSL错误,当AJAX请求与无效证书
问题描述:
服务器我有这样的代码:如何抑制SSL错误,当AJAX请求与无效证书
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,Chrome)
答
首先,回答标题中的问题,这是不能做到的。客户端xmlHttp库不允许客户端忽略ssl错误。 MsXml2.ServerXMLHTTP
object的确允许用户忽略setOption(2, 13056)
method的SSL错误。但是,这个对象不能在浏览器中使用,也不能跨平台使用。
这就是说,似乎还有另一个问题。 12019状态不表示无效的认证。在这种情况下,预计会出现HTTP 403状态代码的一些变体,或许多'invalid certification'代码之一。
ERROR_INTERNET_INCORRECT_HANDLE_STATE
请求的操作无法进行,因为提供的手柄是不正确的状态。
不幸的是,这个状态码并没有真正的通信,也不知道IE的版本和服务器的详细信息。我查了一些论坛帖子。 One stated切换到IIS修复了问题,another指出无法覆盖的临时文件导致问题。然而,大多数帖子并没有令人满意的或决定性的结论。