2009-10-11 2 views
0

У меня есть несколько портлетов в моем приложении. Если я открою url, используя метод window.open(), идентификатор сеанса изменится и вызывает ошибку в других портлетах. Если я не открою этот URL-адрес, все будет хорошо. Но как только это новое окно открывается, сеанс очищается, а остальные портлеты вызывают исключение, поскольку некоторые значения отсутствуют. В адресной строке браузера я набрал javascript: alert (document.cookie); чтобы увидеть JSESSIONID. Он остается постоянным на всей странице и изменяется, когда я нажимаю ссылку, которая запускает новый URL-адрес в новом окне. Я использовал IE8.window.open() очищает сеанс

Любые предложения по поддержанию состояния сеанса в IE будут высоко оценены.

ответ

0

Какой URL-адрес вы передаете window.open()? Простым способом заставить IE 8 поддерживать JSESSIONID во всплывающем окне было бы использовать URL-адрес в вызове window.open() в разметке портлета. Важно то, что доменное имя остается точно таким же. Вот пример кнопки с window.open() в случае OnClick:

<button onclick="javascript:window.open('/wps/portal')">Home Page</button> 

Я использую WebSphere Portal, так что «/ WPS/портал» только ссылки на главную страницу.

Кроме того, что вы намерены стать целью всплывающего окна? Разная страница портала с тем же сеансом?

Update: Учитывая, что мишенью window.open() является независимым веб-приложение, размещенное на том же домене ...

Портал сервер и сервер приложений хостинг веб-приложения имеют независимые сеансы , но оба они используют файл cookie под названием JSESSIONID по умолчанию. При первом доступе к веб-приложению сервер приложений перезаписывает файл cookie портала, в результате чего каждый последующий запрос на портал имеет неправильный идентификатор сеанса. Когда это случилось со мной, моим решением было настроить портал, чтобы назвать его cookie-сессию чем-то другим (например, PORTALSESSIONID), чтобы эти два не конфликтуют.

+0

Спасибо за ответ ... Я передаю полный URL-адрес в качестве параметра для метода open(), но имя домена точно такое же, как и у родителя. Я также попробую ваше предложение. Цель - не страница портала, а другое веб-приложение, размещенное в одном домене, например, если основной домен example.com, я открываю example.com/app/index.jsp – jobinbasani

+0

. Я думаю, что может быть конфликт имен с файлом cookie JSESSIONID. Я обновил этот ответ с некоторыми дополнительными деталями. – cc1001

Смежные вопросы