Ajax запрос ERROR на IE - PullRequest
       3

Ajax запрос ERROR на IE

0 голосов
/ 16 июня 2010

У меня небольшая проблема в браузере IE (на самом деле в Google Chrome тоже) У меня есть этот код JS

function createDoc(url) {
    var xhttp = ajaxRequest();
    var currentLocationBase = window.location.href;
    currentLocationBase = currentLocationBase.substr(0,currentLocationBase.lastIndexOf("/") + 1);
    var u  = currentLocationBase + url;

    xhttp.open("GET", u, false);
    xhttp.send(null);

    var xml = xhttp.responseXML;
    return xml;
}

/**
* Builds an AJAX reques handler.
*
* @return The handler.
*/
function ajaxRequest() {
    var xhttp = null;
    if (window.XMLHttpRequest) {
        xhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject){     
        // Internet Explorer 5/6
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
    }
    return xhttp;
}

В Firefox этот код прекрасно работает, но не в IE и Google Chrome Видимо, ошибка выдается в строке

xhttp.open("GET", u, false);

Может кто-нибудь помочь мне понять, что я делаю не так? Спасибо

Ответы [ 2 ]

0 голосов
/ 16 июня 2010

Почему бы вам не развернуть jQuery? Поставляется с оптимизированным AJAX-стеком и не требует никакого анализа в браузере. Вы действительно получили бы больший вес приложения по сравнению с включением библиотеки, но это, безусловно, того стоит.

0 голосов
/ 16 июня 2010

Поскольку Ajax является асинхронным, вам нужно обрабатывать код и ответ в коде onreadystatechange. Попробуйте w3schools примеров

Похоже, что вы отправляете запрос, и сразу после чтения responseXML это должно вызывать проблемы

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...