Классическая сессия 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+'');