Показать сообщение отдельно
  #1 (permalink)  
Старый 24.04.2011, 13:47
Аватар для zercs
Интересующийся
Отправить личное сообщение для zercs Посмотреть профиль Найти все сообщения от zercs
 
Регистрация: 01.02.2011
Сообщений: 19

проблемка с объектом, POST запрос Ajax
Привет всем! Изучаю jQuery. Написал объект LOGIN, в методе load() есть ajax-запрос (post). Дело в том, что страница обновляется, как будто запрос синхронный. Сервер ничего не возвращает. Подскажите, пожалуйста, в чем суть проблемы. Спасибо

Замечания:
1. Код на сервере верный, проверял низкоуровневыми запросами.
2. Firebug показывает, что данные из js скрипта отправляются корректно, но ответа от сервера нет.

var LOGIN = {
        running: false,
        container: "#log_comments",
        container2: "#center_right",
        url: "scripts/log_add.php",
        delay: 1000,
        attempts: 3,
        reset: function() {
            this.delay = 1000;
            this.attempts = 3;
        },
        load: function() {
           //снижаем нагрузку
           if(this.running == true) {
               return;
           }
           this.running = true;

           var _login = this;

            $.ajaxSetup({
                timeout: 15000
            });
            //запрос
            $.ajax({
                type: "POST",
                url: this.url,
                data: $("#login_form").serialize(),
                //прелоадер
                beforeSend: function() {
                $(_login.container).show().html("<img src='images/preloader.gif' alt=''>");
                },
                //ошибка
                error: function(xhr,status) {
                    if(_login.attempts-- == 0) {
                        _login.reset();
                        return;
                    }
                    setTimeout(function() {_login.load();}, _login.delay *= 2);
                },
                //успех
                success:  function(show_data) {
                    _login.display(show_data);
                },
                //завершение
                complete: function() {
                    _login.running = false;
                }
            });
        },
        //отображение
        display : function(show_data) {
           var log_div = $("#log_comments");
           var menu = this.container2;
           log_div.hide();

            if (show_data == 1) {
                log_div.html("<font color='#e80707' style='background-color: #FFE4E1;\
                font-size: 12px; border: 1px dashed #e80707;'>\
                &nbsp;Неправильный логин/пароль&nbsp;</font>").fadeIn('normal');
                 setTimeout(function() {log_div.fadeOut('normal')},4000);
                }
        }
    };
Ответить с цитированием