На ранней стадии метод входа в систему легко выполнялся с использованием ajax. Перед входом в систему оценивалось, существует ли значение в сеансе, и нет необходимости входить в систему, если оно не существует; , откроется страница входа в систему. Поскольку я использую браузер ff, проблем не обнаружено. Когда я представил его пользователям на прошлой неделе, я был шокирован тем, что после входа в систему через IE он оказался недействительным. Результат действительно такой. . Очень неловко
Код входа следующий:
Скопируйте код кода следующим образом:
//Запрос от сервера, существует ли сессия
j.ajax({
тип: ПОЛУЧИТЬ,
URL:sessioncheck.asp,
данные:,
тайм-аут: 1000,
ошибка: функция(){
alert('Извините, сервер сейчас занят!');
},
успех: функция (комментарии_данные) {
если (комментарии_данные == 1) {
el.createDialog(opts);
j.startOver();
}
еще{
вар sql = selectSQL (ключ поиска, тип);
window.location.href = sql;
}
}
});
Примерно так: Sessioncheck.asp — это не что иное, как проверка сессии. Код такой:
Скопируйте код кода следующим образом:
если сеанс (имя пользователя) = тогда
Ответ.Запись(1)
еще
Ответ.Запись(2)
конец, если
В результате сеанс (имя пользователя) IE бесполезен, а настройка тайм-аута бесполезна.
Я долго проверял в Интернете и обнаружил, что подобных проблем довольно много. Наконец, я нашел причину: проблема с кэшем.
При получении асинхронного получения, если URL-адрес остается неизменным, информация в кеше вызывается напрямую, что приводит к тому, что значение в сеансе не может быть получено.
Решение очень простое: очистите большую часть кеша Google ASP.
Наконец, в sessioncheck.asp был добавлен следующий абзац:
Скопируйте код кода следующим образом:
Response.Buffer = Истина
Response.ExpiresAbsolute =Now() - 1
Ответ.Истекает=0
Response.CacheControl=без кэша
если сеанс (имя пользователя) = тогда
Ответ.Запись(1)
еще
Ответ.Запись(2)
конец, если