Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / IE7, window.open, сессия / 17 сообщений из 17, страница 1 из 1
21.12.2010, 22:19
    #37028346
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
В IE7 (в остальных браузерах все работает) на странице через window.open открывается дочернее окно, выбирается значение, дочернее окно закрывается. Сессия потеряна. Кто-нибудь боролся с таким?
...
Рейтинг: 0 / 0
21.12.2010, 22:41
    #37028381
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
doublefintКто-нибудь боролся с таким?
Вообще сессии не используем...
...
Рейтинг: 0 / 0
22.12.2010, 05:46
    #37028714
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
krvsa, вы вводите нас в заблуждение.

doublefint, нет ли на теге body свойства onunload? Мне кажется, это ваше приложение отрывает сессию принудительно.
У нас была другая проблема - при открытии окна из модального диалога сессия не передавалась.
...
Рейтинг: 0 / 0
22.12.2010, 09:28
    #37028827
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Блок А.Н.вы вводите нас в заблуждение
Не понял почему?
Мы не пишем ничего в сессию... Ничего из неё не читаем... Потому и написал что "Вообще сессии не используем..."
...
Рейтинг: 0 / 0
22.12.2010, 09:44
    #37028843
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Как говаривал Кант:
- Хватит спорить, давайте вычислять.

Сделал два csp-файла...

tmp.csp

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<html>
<head>
<script type='text/javascript'>
function $(Id) {
	return document.getElementById(Id)
}
function Go() {
	var sid
	sid=#server(..cSId())#
	$('start').innerHTML=sid
	sid=window.showModalDialog('tmp1.csp')
	sid=#server(..cSId())#
	$('stop').innerHTML=sid
}
</script>

<csp:method name="cSId" arguments="" returntype="%String">
  n sid
  s sid=%session.SessionId
  q sid
</csp:method>

</head>
<body>
<input type='button' value='Test SessionId' onclick='Go()' />
<p id='start'></p>
<p id='stop'></p>
</body>
</html>

И tmp1.csp

Код: plaintext
1.
2.
3.
4.
5.
6.
<html>
<head>
</head>
<body>
<p>SessionId = #(%session.SessionId)#</p>
</body>
</html>

Потестил в ИЕ7...
%session.SessionId везде был одинаков... Никуда не девался...
...
Рейтинг: 0 / 0
22.12.2010, 10:41
    #37028973
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
doublefint,

Есть подозрение на параметры безопасности IE7

Есть подозрения, что у вас пути этих двух страниц пишутся по разному, изз-за чего куки хранятся раздельно. Например, один из путей содержит большие буквы.

krvsa, ну у вас какая-то система авторизации есть?
Как система не сваливает запросы всех пользователей в кучу? Вы все-все в URL подаете?
...
Рейтинг: 0 / 0
22.12.2010, 12:09
    #37029218
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Блок А.Н.у вас какая-то система авторизации есть?
В новых вариантах кащейская авторизация.

Блок А.Н.Вы все-все в URL подаете?
Да.
Только про "все, все" это громко сказано... Так, некие "ключевые" элементы...
...
Рейтинг: 0 / 0
22.12.2010, 14:57
    #37029671
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Хм, настройки безопасности...
Разрабатывал под IE8, для проверки работы переключил его в режим IE7, перестало работать. В сессии ID пользователя. Закрывается дочернее окно, пользователя выкидывает на страницу авторизации. onunload не использовал. Пути типа window.open("csp.child.cls")
...
Рейтинг: 0 / 0
22.12.2010, 16:38
    #37029993
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
А можно полные пути?

Еще посмотрите в настройках csp приложения, возможно хранение куков если смысл сделать в приложении / а не /myapp/
Пока мне кажется, что не передаются куки на дочернюю страницу.
Еще поиграйтесь параметром "использовать куки для сессии".
...
Рейтинг: 0 / 0
22.12.2010, 16:52
    #37030056
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
doublefint ,

Для модальных окон лучше использовать метод launchPopupWindow в связке с zenLink или %CSP.Page:Link() на случай приватных страниц.
По поводу сессий в различных браузерах было на англоязычном форуме, например:
CSP Sessions with Firefox and IE8

%session.Data on different FireFox tabs

Csp's losing %session.Data between pages

Old %session objects re-used

Ещё посмотрите параметр CSPSHARE .
...
Рейтинг: 0 / 0
23.12.2010, 15:11
    #37031838
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
При открытии нового окна создает новую сессию. Пример для тестирования
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Class csp.parent Extends %CSP.Page {
ClassMethod OnPage() As %Status {
 &html<<html><head>
 <script type='text/javascript'>
window.callback=function(ssId){
	 var nowSsId=#(..HyperEventCall("..getSessionId"))#;
	 alert("ssId: "+ssId+" == "+ nowSsId+"?");
}
</script>
#(..HyperEventHead())#
</head><body>
#(%session.SessionId)#
<input type='button' value='Open child' onclick='window.open("csp.child.cls","_blank","width:200,height:150;");' />
</body></html>> Q $$$OK
}
ClassMethod getSessionId() As %String {  q %session.SessionId }
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Class csp.child Extends %CSP.Page {
 ClassMethod OnPage() As %Status {
	&html<<html><head><script type="text/javascript">
	function callback(){
		var ssId="#(%session.SessionId)#";
		window.opener.callback(ssId);
		window.close();
	}
	</script></head><body>
	#(%session.SessionId)#
	<input type="button" value="CallBack And Close" onclick="callback()" />
	</body></html>> Quit $$$OK
 }
}
...
Рейтинг: 0 / 0
23.12.2010, 15:15
    #37031845
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
doublefintПри открытии нового окна создает новую сессию.
Так вроде так всегда и было...

Код: plaintext
window.open(...)
Новое окно - новый пользователь и минус лицензия...
...
Рейтинг: 0 / 0
23.12.2010, 17:38
    #37032216
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Opera 11.00
IE 6.0
Mozilla 3.6

Сессия держится во всех трех случаях, каше дома стоит версии
Cache for Windows (x86-32) 2010.2 (Build 431) Thu Sep 16 2010 17:36:20 EDT

У вас что-то с настройками куков в браузере, они почему-то не передаются в новое окно, попробуйте сбросить настройки безопасности по дефолту.

krvsaТак вроде так всегда и было.
Фигня. У нас много окошек открывается и модально и немодально, в каждом окошке проверка текущей сессии, если она не совпадает, то вышибает все приложение. И это случается очень редко.
...
Рейтинг: 0 / 0
23.12.2010, 18:40
    #37032408
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
А, дома у меня IE7 нет, но в организации у нас используется и IE7 и более старшие версии.
...
Рейтинг: 0 / 0
23.12.2010, 18:48
    #37032440
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Блок А.Н., более того, как оказалость, и в IE7 тоже держит сессию (проверил на виртуалке с IE7 v.7.0.5730) Только IE8 в режиме IE7... Считаю вопрос закрытым, всем спасибо за помощь, прошу прощения за беспокойство.
...
Рейтинг: 0 / 0
23.12.2010, 20:06
    #37032572
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Блок А.Н.Фигня.
И лицензии не съедаются?
...
Рейтинг: 0 / 0
23.12.2010, 20:40
    #37032630
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IE7, window.open, сессия
Нет, лицензии не съедаются, сессия держится.
Ну то есть случаи, когда приложение вышибает бывают, тогда сессию новую приходится открывать, но это не связано с открытием новых окон. Вообще для каше абсолютно пофиг, как открывается окно, модально или немодально, разница есть только для браузера.

Пока точно известно, что сессия теряется, если сделать window.open из модального окна, такие моменты мы переписали.
Еще сессия теряется, если страница есть в url с приложение содержит большие буквы.

А сейчас я вообще сделал привязку лицензий по IP, как в 2010, так что пофиг :-)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / IE7, window.open, сессия / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]