LINUX.ORG.RU

Проблема с AJAX


0

0

Не работает следующий код:

function createRequest()
{
  var request = null;
  try {
    request = new XMLHttpRequest();
  } 
  catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed) {
        request = null;
      }
    }
  }
  if (request == null)
    alert("Error initializing XMLHttpRequest!");
  return request;
}

function enter()
{
  if(checkForm()) {
    var request = createRequest();
    if (request != null) {
      var url = "./scripts/login.php?login=" + escape(entryform.login.value) + "&password=" + escape(entryform.password.value);
      request.open("GET", url, true);
      request.send(null);
      request.onReadyStateChange = function()
      {
        alert(request.readyState);                                                                 
      }
    }
  } 
}

При этом в IE 6 все работает, выдает 1, 2, 3, 4. В Opera, Konqueror и Firefox не происходит ровным ровным счетом ничего. В чем ошибка? 

"не работает" - это как? request == null?

Pi ★★★★★
()

>В Opera, Konqueror и Firefox не происходит ровным ровным счетом ничего.

У всех трёх есть консоль ошибок (В Опере Tools-Advanced-Error Console).

Что там?

anonymous
()

Никакая ошибка не возникает, то есть в консоль ничего не вываливается, при этом объект существует и != null, тем не менее состояние запроса не изменяется

HadroN
() автор топика

Покопавшись с Firebug, определил, что от сервера приходит ответ, соответствующий введенный данным, но readyState не меняется, то есть  постоянно равно 1. Как это объяснить? Может apache надо как-то хитро настроить?

HadroN
() автор топика
Ответ на: комментарий от applesin

Я бы рад, да тема курсача такая попалась

HadroN
() автор топика

Всем спасибо проблема решилась, оказывается надо писать onreadystatechange именно в нижнем регистре, а я думал JS регистронезависим.

HadroN
() автор топика
Ответ на: комментарий от applesin

а ты когда-нидь дебугил "аякс" аппликухи на ифреймах? иногда появляется желание застрелиться

Pi ★★★★★
()
Ответ на: комментарий от HadroN

>Всем спасибо проблема решилась, оказывается надо писать onreadystatechange именно в нижнем регистре, а я думал JS регистронезависим.

Капец! Действительно, блин, не работает с camel-style :) Спасибо за всестороннее освещение :)

Ay49Mihas ★★★★
()
Ответ на: комментарий от HadroN

>Я бы рад, да тема курсача такая попалась

>а я думал JS регистронезависим.

надеюсь, ты не сдашь.

mirage
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.