2012-04-12 46 views
5

tengo este código:Cómo atenuar el error de SSL cuando petición AJAX al servidor con certificado no válido

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'); 

Cuando envío de petición al servidor con el certificado no válido tengo error con código de estado 12019.

La solución debe ser de navegador cruzado (IE, FF, Chrome)

Respuesta

1

En primer lugar, para responder a la pregunta en el título, esto no se puede hacer. Las bibliotecas de cliente xmlHttp no permiten que el cliente ignore los errores de ssl. El MsXml2.ServerXMLHTTPobject permite ignorar los errores de SSL con el setOption(2, 13056)method. Sin embargo, este objeto no se puede usar dentro de un navegador, ni es multiplataforma.

Dicho esto, parece haber otro problema. El estado 12019 no indica una certificación inválida. En ese caso, se esperaría alguna variante de un código de estado HTTP 403, o uno de los muchos códigos 'invalid certification'.

Su 12019 status code indica:

ERROR_INTERNET_INCORRECT_HANDLE_STATE

La operación solicitada no se puede llevar a cabo debido a que el mango suministrado no está en el estado correcto.

Lamentablemente, este código de estado realmente no se comunica mucho, y sin saber qué versiones de IE, y detalles sobre el servidor no hay mucho más para seguir. Revisé varias publicaciones en el foro. One stated al cambiar a IIS solucionó el problema, another indicó que los archivos temporales que no se podían sobrescribir llevan al problema. La mayoría de las publicaciones, sin embargo, no tienen una conclusión satisfactoria o decisiva.

Cuestiones relacionadas