Классическая сессия ASP и jQuery в IE

Я пишу панель управления для пользователей в моем проекте, у меня есть DIV элемент и загрузить пользовательскую ситуацию в этом с $('.user-situation').load('userpanel.asp'),

У меня есть модальная форма входа в систему, и она отправляет данные для аутентификации страницы в JSON:

$.getJSON("authenticate.asp?U=u.val()"+"&P=p.val()"+"&format=json&jsoncallback=?", function(data){

   if(data.Status == "Successful"){

       $('.user-situation').load('userpanel.asp');

   }

});

на странице аутентификации я установил какой-то сеанс, и один из них Session("ID")Как вы можете видеть, я перезагружаю userpanel.asp в моем div после успешного входа в систему, потому что я хочу показать там параметры пользователя.

код userpanel.asp такой (упрощенный)

if Session("ID")= "" then
 Response.Write ("You must log in to using of site options")
else
 Response.Write (" some options write here ")
end if

это отлично работает в FF, Chrome и Opera. Но в IE (9), когда страница обновляется после успешного входа в систему, userpanel.asp показывает мне первый результат условия!!

Зачем?! где моя вина?!

2 ответа

Решение

Это, вероятно, кеширование начального результата страницы. (IE всегда пытается быть умнее всех нас... и терпит неудачу.)

Я предлагаю засолить строку запроса уникальным номером, который всегда будет другим при перезагрузке страницы. Пытаться:

$('.user-situation').load('userpanel.asp?' + Math.floor(Math.random()*1701)); // 1701 is just a number I... well... Yeah, I'm a Trekkie nerd.

В любом случае, это заставит браузер думать, что вы никогда не видели этот URL раньше, что решит проблему, если это проблема кэширования.

IE может кешировать userpanel.asp, попробуйте сгенерировать и добавить строку запроса случайного числа в конце вашего вызова, например:

//generate random number and assign to rnd
$('.user-situation').load('userpanel.asp?rand='+rnd+'');
Другие вопросы по тегам