Dans mon cas, je vais avoir cette même erreur lors de l'utilisation AjaxPro par https, TLS 1.2, ECDHE_RSA avec échange de clés P-256 et de chiffrement AES_256_GCM (IE11 +, Chrome51 +, + Firefox49. Vérifiez le vôtre here). Il fonctionne bien avec AES_256_CBC obsolète avec le chiffrement HMAC-SHA1.
Le problème est que XMLHttpRequest.statusText propriété est vide après la réponse du serveur (je ne sais pas vraiment pourquoi) et méthode AjaxPro.Request.prototype.doStateChange (fichier ajaxpro/core.ashx) attendu « OK » de prendre une réponse valide:
var res = this.getEmptyRes();
if(this.xmlHttp.status == 200 && this.xmlHttp.statusText == "OK") {
res = this.createResponse(res);
} else {
res = this.createResponse(res, true);
res.error = {Message:this.xmlHttp.statusText,Type:"ConnectFailure",Status:this.xmlHttp.status};
}
J'ai finalement décidé de passer outre méthode AjaxPro.Request.prototype.doStateChange et permettre à une valeur vide dans this.xmlHttp.statusText.
J'ajouté ce script à mes pages concernées:
$(function() {
if (typeof AjaxPro != 'undefined' && AjaxPro && AjaxPro.Request && AjaxPro.Request.prototype) {
AjaxPro.Request.prototype.doStateChange = function() {
this.onStateChanged(this.xmlHttp.readyState, this);
if (this.xmlHttp.readyState != 4 || !this.isRunning) {
return;
}
this.duration = new Date().getTime() - this.__start;
if (this.timeoutTimer != null) {
clearTimeout(this.timeoutTimer);
}
var res = this.getEmptyRes();
if (this.xmlHttp.status == 200 && (this.xmlHttp.statusText == "OK" || !this.xmlHttp.statusText)) {
res = this.createResponse(res);
} else {
res = this.createResponse(res, true);
res.error = { Message: this.xmlHttp.statusText, Type: "ConnectFailure", Status: this.xmlHttp.status };
}
this.endRequest(res);
};
}
});
Merci de fournir une solution de contournement. –