我有这个代码:
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 http://msdn.microsoft.com/en-us/library/ms766431(v=vs.85).aspx确实允许人们忽略 SSL 错误setOption(2, 13056)
method http://msdn.microsoft.com/en-us/library/ms763811(v=vs.85).aspx。然而,这个对象不能在浏览器内使用,也不是跨平台的。
话虽如此,似乎还有另一个问题。 12019状态并不表示认证无效。 HTTP 403 状态代码的某种变体,或众多状态代码之一无效认证 http://msdn.microsoft.com/en-us/library/windows/desktop/aa385465(v=vs.85).aspx在这种情况下,预计会出现 ' 代码。
Your 12019 状态码 http://msdn.microsoft.com/en-us/library/windows/desktop/aa385465(v=vs.85).aspx表示:
ERROR_INTERNET_INCORRECT_HANDLE_STATE
12019
无法执行请求的操作,因为提供的句柄状态不正确。
不幸的是,这个状态代码并没有真正传达太多信息,并且在不知道 IE 版本以及有关服务器的详细信息的情况下,没有更多内容可以继续。我查了很多论坛帖子。一位表示 http://forums.asp.net/t/1123365.aspx切换到 IIS 解决了这个问题,another http://forums.asp.net/t/1126173.aspx指出无法覆盖的临时文件导致了该问题。然而,大多数帖子都没有令人满意的或决定性的结论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)