Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > ajax.status = 0


Автор: donion 27.8.2009, 00:31
Всем привет. Кто-нибудь сталкивался с проблемой аякса в виде ajax.status = 0, вместо 200.
В чем может быть проблема?

Моя ситуация:

Вызов ahah:
Код

onclick="
javascript:ahahscript.ahah('index_ajax.php?type=video&load=featured', 'videos-ajax', '', 'GET', '', this);"


Кусок кода где выводиться ошибка javascript'a:
Код

                req.onreadystatechange = function() {
                    ahahscript.ahahDone(url, target, delay, method, parameters);
                };
     
                req.open(method, url, true);
                req.send("");


Выводиться здесь - req.send(""); (проверяю firebug'ом)

ahahDone(функция обрабатывающая ответ с сервера):
Код


    ahahDone : function (url, target, delay, method, parameters) {
        if (req.readyState == 4) {
            element = document.getElementById(target);
            if (req.status == 200) {
                //this.creaDIV(target, req.responseText);
                output = req.responseText;
                document.getElementById(target).innerHTML = output;
                var j = document.createElement("div");
                j.innerHTML = "_" + output + "_";
                this.execJS(j);

            }
            else {
                this.creaDIV(target, "ahah error:\n"+req.statusText);
            }
        }
    }



При дебаже на фф выдает 200 ок, но ошибка на 49 линии - то есть там где я указал.
Ошибку выдает во всех браузерах, отладка дает одинаковый результат.

Что может быть не верно?
Как можно отладить?
Возможна ли проблема с сервером?

Проверял следующее:
-пути;
-права;
-скрипт расположенный здесь - index_ajax.php?type=video&load=featured(т.е. куда передаю значения) рабочий;

Чес.слово замаялся уже искать ошибку  smile , у кого есть опыт помогите пожалуйста.  smile 

Автор: unicross 27.8.2009, 05:19
Если отправляете данные методом GET, тогда:
Код

req.open(method, url, true);
req.onreadystatechange = function() {
   ahahscript.ahahDone(url, target, delay, method, parameters);
};
req.send(null);

Автор: donion 27.8.2009, 10:51
Исправил - но дает тот же эффект, "" = null.

Вообщем нашел в чем проблема - оказывается когда в браузере пишешь:
http://site.ru - выдает ошибку, но когда - http://www.site.ru - ошибки нет.

Осталось только понять почему так  smile 

Автор: DashkaTk 18.9.2009, 11:21
недавно столкнулась - причина в кроссдоменном запросе
броузер не дает скриптовыми методами лезть на другие сайты
http://site.ru и http://www.site.ru - для него разные

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)