Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mootools, IE и Ajax, Запросы с одинаковыми параметрами 
:(
    Опции темы
race1
Дата 5.2.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 18.6.2004

Репутация: нет
Всего: нет



Есть форма для логина, на ней поля "логин"/"пароль". Первый раз заполняю поля, нажимаю "войти", вызывается моя функция, которая делает запрос

Код

  new Ajax('/login', {
    data: 'login=' + encodeURIComponent($('login').getValue()) + 
          '&pass=' + encodeURIComponent($('password').getValue()),
    method: 'get',
    onSuccess: onSuccess,
    onFailure: onFailure
  }).request();


Всё срабатывает, onSuccess говорит 
Код
window.setTimeout('openTablesList()', 1000); 
, а openTablesList говорит 
Код
window.location = 'tables.html';


Но если теперь вылогиниться, или перейти назад, ввести теже логин/пароль и нажать кнопку "войти", то, судя по снифферу, ie вообще ничего никуда не передаёт, а вызывает onSuccess видимо со значениями, полученными прошлый раз.

Если ввести другие логин/пароль, ie таки делает запрос. Но теперь если с первой страницы ввести эти два логина/пароля, он опять ничего не запрашивает.

Как это можно исправить?
PM MAIL ICQ   Вверх
ksnk
Дата 5.2.2008, 10:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Попробуйте так.
Код

data: 'login=' + encodeURIComponent($('login').getValue()) + 
          '&pass=' + encodeURIComponent($('password').getValue())+
          '&noice='+Math.random(), // <<<< вот это добавили

Проблема называется Кэширование ajax запросов. Нужно почитать документацию на Вашу функцию Ajax и сделать так, чтобы она не кэшировала. Если это невозможно (нет документации ;-)) пойдет и мой способ


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
race1
Дата 5.2.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 18.6.2004

Репутация: нет
Всего: нет



Цитата(ksnk @ 5.2.2008,  15:30)
Попробуйте так.
Код

data: 'login=' + encodeURIComponent($('login').getValue()) + 
          '&pass=' + encodeURIComponent($('password').getValue())+
          '&noice='+Math.random(), // <<<< вот это добавили

Проблема называется Кэширование ajax запросов. Нужно почитать документацию на Вашу функцию Ajax и сделать так, чтобы она не кэшировала. Если это невозможно (нет документации ;-)) пойдет и мой способ

Супер, теперь работает как надо! Спасибо!

В доках на mootools вроде не было про кеширование запросов, или я не внимательно читал... Будет время, попробую узнать у них на форуме.

Посмотрел. Проблема решается либо dummy-параметром, либо управлением кеширования.

http://forum.mootools.net/viewtopic.php?id=8007
http://forum.mootools.net/viewtopic.php?id=3095

Это сообщение отредактировал(а) race1 - 12.2.2008, 19:15
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.1390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.