О неработоспособности XMLHttpRequest

V5
На сайте с 10.08.2019
Offline
0
252

Для реализации объекта XMLHttpRequest у меня используется следующая типичная функция javascript:

function fajax(dvs,dur) {var req;

if (window.XMLHttpRequest){
try {req=new XMLHttpRequest();} catch(e) {alert("XMLHttpRequest!");} }
else if (window.ActiveXObject){
try {req=new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {
try {req=new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {alert("ActiveXObject!");} }}
req.open("GET","/cgi-bin/cgiproject1.cgi?name="+dur,true);
req.onreadystatechange=function() {var rst=4,ost=200;
if ((req.readyState==rst)&&(req.status==ost)){
if (req.responseText){document.getElementById(dvs)=req.responseText} else {alert("ResponseText!");}}
else {alert(req.readyState);}}
req.send();
}
fajax('id1','request1');

Однако после запуска в браузерах Firefox, Google Chrome и Opera (ОС Linux) при достижении данным объектом статуса 3 (readyState) эта функция завершает своё выполнение. Между тем, указанный обработчик (cgiproject1.cgi) при отправке запроса на сервер с помощью аналогичной формы исправно возвращает требуемый ответ. В чём же может быть причина неработоспособности объекта XMLHttpRequest? Заранее признателен за любой совет по вышеизложенной проблеме.

S
На сайте с 30.09.2016
Offline
469
#1

Замени

alert(req.readyState);
на
console.log(req.readyState);
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
V5
На сайте с 10.08.2019
Offline
0
#2

Спасибо за совет. В 10 строке заменил на:

document.getElementById(dvs).innerHTML=req.responseText

, теперь XMLHttpRequest работает.

S
На сайте с 30.09.2016
Offline
469
#3

А, ну это да. Это немножко не то, что написано в стартпосте. То есть XMLHttpRequest работал и без этого исправления, но результат невозможно было записать "в никуда". Какие-то браузеры могли исправлять эту ошибку, а какие-то - не обязаны.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий