я использую XmlHttp с сервлеты следующим образом:не удается остановить функцию, если XMLHTTPRequest.responseText равно определенное значение
function btnSave_onclick(){
var xmlHttp;
var responseText;
if (condition){
var para= "someParamsHere";
var url = "urlHere";
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open('post', url, true);
xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
xmlHttp.setRequestHeader("Content-length", para.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(para);
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4) {
if(xmlHttp.status==200){
responseText=xmlHttp.responseText;
if(responseText=='error'){
alert("Fatal Error Occurred");
return;
}
}
}
}
}
// some other code here
}
код пост в сервлет, и в сервлет, если исключение происходит я печать ответа текст содержит строку «ошибка», проблема заключается в том, что появляется сообщение об ошибке, но код продолжается до блока // другой код здесь означает, что возврат не выходит из функции js, пожалуйста, сообщите.
вы уверены, что ваш текст ответа на самом деле «ошибка» (нижний регистр и без пробелов)? – fcalderan
@Fabrizio Calderan, так как я сказал, что он печатает предупреждение («Fatal Error Occurred»); это означает, что responseText - это ошибка, как ожидалось, но проблема в том, что она игнорирует возврат и переходит к следующему блоку –