Передавать сессию в URL — это либо через JS дописывать идентификатор, либо это же делать сразу же в html.
В одном случае извращения не меньшие, чем описанные в топике, в другом — надо заранее это продумывать, иначе потом нужны будут трудозатраты на поиск и замену всех ссылок.
Поэтому лично я считаю cookies'ы лучшим вариантом.
Ссылками пользуемся, но пока передача в parent не до конца проработана. Приём с onLocationChanged вроде бы работает. Кроссбраузерность проверим. =)
По поводу написания топика: было бы замечательно почитать, т.к. мы тоже используем/будем_использовать это.
По поводу «принимать все куки» хотел сказать, что, по-моему(специально не проверял, но по косвенным наблюдениям это так), когда обновляете Opera с более старых версий, то новые дефолтовые настройки не применяются. Поэтому если ничего не меняли ранее, то останется «принимать все куки».
А вот при чистой установке по дефолту будет «только с посещаемого сайта».
Про способ с AJAX не уверен, что сработает.
Третий способ из топика для сервера и для пользователя выглядит практически так же, как если бы это был AJAX.
Да, можно.
Но мы решили, что пусть уж извращение будет в одном месте, чем на каждой странице. =)
И для Вашего способа нам тоже пришлось бы больше переделывать…
В Safari 5.0.3 (Win) приложение так и не установило ни одного cookies'а.
В Opera 11.00 (Linux) cookies устанавливаются, но не на первой странице.
Насколько я понял, у Вас приложение вообще не требовательно к cookies, и сессии при помощи них у вас не ведутся. Скорее всего именно из-за этого Вы не имели проблем.
Да, об этом способе мы так же думали, но решили оставить его в качестве крайнего варианта.
Приложение делалось на основе сайта, и первостепенной задачей было именно его создание с минимальными переделками и трудозатратами. По вашему (и, возможно, другим подобным вариантам) переделывать пришлось бы больше.
Плюс, как выяснилось в итоге, большинство приложений пользуются именно предложенными в хабратопике способами.
В том то и дело, что, как выяснилось в итоге, это нормальное поведение браузеров.
При установке галочки в такое положение (стоит в вышеперечисленных браузерах по дефолту) он перестаёт принимать кукисы от содержимого iframe'а (подразумевается, что содержимое принадлежит другому домену) до определённых действий пользователя внутри этого iframe (в частности до перехода по ссылке).
А решение проблемы и было в таком порядке:
1. в гугле быстрым поиском ничего не нашлось.
2. а как же тогда у других то работает?
3. ковыряли другие приложения, нашли одно из описанных в топике решений
4. решил изучить тему глубже, тщательно погуглил, посмотрел как у других, поэксперементировал и написал по результатам этот хабратопик
Вконтакте и Facebook в заголовке на всякий случай оставил, т.к. множество людей имеют возможность столкнуться с такой проблемой именно при разработке приложений в этих соц. сетях (как было и в нашем случае). В то время как вероятность других случаев, связанных с этой проблемой, гораздо ниже.
Почитать было интересно. Спасибо!
В остальных случаях статья будет полезна. =)
Спасибо!
В одном случае извращения не меньшие, чем описанные в топике, в другом — надо заранее это продумывать, иначе потом нужны будут трудозатраты на поиск и замену всех ссылок.
Поэтому лично я считаю cookies'ы лучшим вариантом.
Ссылками пользуемся, но пока передача в parent не до конца проработана. Приём с onLocationChanged вроде бы работает. Кроссбраузерность проверим. =)
По поводу написания топика: было бы замечательно почитать, т.к. мы тоже используем/будем_использовать это.
А вот при чистой установке по дефолту будет «только с посещаемого сайта».
Я считаю, что нужно пользоваться, пока работает. Если вдруг пофиксят, то у нас в запасе ещё способы есть. =)
P.S. А Вы попробуйте ещё в Safari протестировать.
Третий способ из топика для сервера и для пользователя выглядит практически так же, как если бы это был AJAX.
Не против, если я её в «ссылки по теме» добавлю?
Но мы решили, что пусть уж извращение будет в одном месте, чем на каждой странице. =)
И для Вашего способа нам тоже пришлось бы больше переделывать…
В Safari 5.0.3 (Win) приложение так и не установило ни одного cookies'а.
В Opera 11.00 (Linux) cookies устанавливаются, но не на первой странице.
Насколько я понял, у Вас приложение вообще не требовательно к cookies, и сессии при помощи них у вас не ведутся. Скорее всего именно из-за этого Вы не имели проблем.
Приложение делалось на основе сайта, и первостепенной задачей было именно его создание с минимальными переделками и трудозатратами. По вашему (и, возможно, другим подобным вариантам) переделывать пришлось бы больше.
Плюс, как выяснилось в итоге, большинство приложений пользуются именно предложенными в хабратопике способами.
При установке галочки в такое положение (стоит в вышеперечисленных браузерах по дефолту) он перестаёт принимать кукисы от содержимого iframe'а (подразумевается, что содержимое принадлежит другому домену) до определённых действий пользователя внутри этого iframe (в частности до перехода по ссылке).
А решение проблемы и было в таком порядке:
1. в гугле быстрым поиском ничего не нашлось.
2. а как же тогда у других то работает?
3. ковыряли другие приложения, нашли одно из описанных в топике решений
4. решил изучить тему глубже, тщательно погуглил, посмотрел как у других, поэксперементировал и написал по результатам этот хабратопик
Переместил в «Браузеры».
Вконтакте и Facebook в заголовке на всякий случай оставил, т.к. множество людей имеют возможность столкнуться с такой проблемой именно при разработке приложений в этих соц. сетях (как было и в нашем случае). В то время как вероятность других случаев, связанных с этой проблемой, гораздо ниже.