XMLHttpRequest.open не является функцией - PullRequest
0 голосов
/ 22 июля 2011

Я пытался получить свой код с нуля, но я сталкивался с постоянно возникающей ошибкой во всех браузерах, которая говорит мне, что мой объект ajax не включает функцию open.Я уверен, что то, что я набрал, неправильно, но простите меня, так как JavaScript не моя сильная сторона:)

window.onload = function(){init();}

function init() {
    ajax = ajaxInit();
    ajax.onreadystatechange = update(ajax);
    ajaxContact(ajax);
    setInterval("ajaxContact('"+ajax+"')",5000);
}

function ajaxInit() {
    if (window.XMLHttpRequest) {
      ajax = new XMLHttpRequest();
    }
    else {
        if (window.ActiveXObject) {
              ajax = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    if (ajax) {
        document.getElementById("status").innerHTML = "AJAX initialized";
        return ajax;
    }
    else {
        docuement.getElementById("status").innerHTML = "Error: AJAX not available";
        return false;
    }

}

function ajaxContact(ajax) {

    try {
        ajax.open("GET","updateAjax.php?" + "ran=" + Math.random(),true);
        ajax.send();
    }
    catch (err) {
        alert(err.message);
        document.getElementById("status").innerHTML = "Error contacting server";
        document.getElementById("loading").src = "images/redx.png";
    }
}

function update(ajax) {
      if (ajax.readyState==4 && ajax.status==200){
          dataObj = jsonTranslate(ajax);
          document.getElementById("status").innerHTML = dataObj.status;
          document.getElementById("frame").innerHTML =
          "Frame:" + dataObj.firstFrame + "/" + dataObj.lastFrame;
          document.getElementById("thumbnail").src = dataObj.imgSrc;

      }
      if (ajax.status==404) {
          document.getElementById("status").innerHTML = "Ajax updater not found";
          document.getElementById("loading").src = "images/redx.png";
      }
}

function jsonTranslate(ajax) {
    return eval('(' + ajax.responseText + ')');
} 

1 Ответ

3 голосов
/ 22 июля 2011

Вы передаете переменную ajax в виде строки ...

setInterval("ajaxContact('"+ajax+"')",5000);

Попробуйте заменить это на ...

setInterval(function() { ajaxContact(ajax); }, 5000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...