IE11 - Сторона перенаправления на jsp не может оценить атрибут сеанса - PullRequest
0 голосов
/ 21 мая 2019

Мой логин Ajax-вызов похож на

        $.get("LoginServlet", {'agileid': id, 'passwd': passwd, 'remember': 'yes' }, function(data) {
        var results = JSON.parse(data);
        if ( results.status == "failed") alert(data);
        else window.location.href = 'Main.jsp'; 
    });

Мой LoginServlet установит специальный объект атрибута сеанса, который невозможно сохранить на стороне клиента.

В Main.jsp определит наличие объекта сеанса и выполнит необходимые действия.

<%@page import="agile.px.myagiledashboard.listeners.SessionResourcesObject"%>
<%@ page contentType="text/html;charset=UTF-8" session="false" %>
<!DOCTYPE html>
<%
HttpSession hSession = request.getSession();
System.out.println("Main.jsp: " + hSession.getId()); //This is to make sure the session is the same as in LoginServlet request
SessionResourcesObject SRO = (SessionResourcesObject)    hSession.getAttribute("SRO");
String userName = "";

if ( SRO != null) {
try {
    userName = SRO.getCUser();
    System.out.println("main.jsp: " + userName);
} catch (Exception e) {

}

}

%>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
....

Код работает с Chrome, но при запуске в IE11 (в режиме совместимости - ИТ-политика компании - изменить нельзя) объект сеанса всегда становится пустым после перенаправления на страницу jsp.

У кого-нибудь есть такая же проблема? Или кто-нибудь может указать на проблему (ы) в моем коде и исправить это?

Спасибо

Alex

1 Ответ

0 голосов
/ 25 мая 2019

Достаточно странно: использование location.href решило проблему.Chrome не ведет себя по-другому, но в IE11 location.href не создаст новый сеанс, а window.location.href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...