Cookies не отправляются должным образом в Opera

во-первых, я не уверен, является ли это проблемой в Opera 12.01 или нет, но проблема возникает только в Opera. Я тестировал в браузерах FF14, Chrome 21, Safari 5 (Windows) и Safari Mac и Webkit на Android и iPhone.

мое приложение запускается на триггере.io Кузня платформа и использует прокси для маршрутизации запросов из веб-приложения в службу. Прокси-сервер просто пересылает запросы и куки-файлы, и это работает так, как ожидалось в большинстве броузеры.

после проверки запроса в dragonfly я заметил, что сервер отправляет правильные заголовки в ответе, но Opera, похоже, игнорирует установку значений. Мне интересно, связано ли это с некоторым неправильно настроенным значением пути для cookie. Я прикрепил скриншоты 2 запросов в Firefox и Opera.

Как вы можете видеть на экранах, FF видит заголовки файлов cookie и устанавливает их соответствующим образом, но Opera этого не делает.

в Firefox Запрос

Firefox request

Opera запрос 1 Экран

Opera request 1

Opera Запрос 2 Экрана

Opera Request 2

Я не включил код из прокси, который выполняет переадресацию запроса, поэтому, пожалуйста, дайте мне знать, если вам это нужно, чтобы получить некоторое представление. В конце службы я запускаю PHP и Codeigniter. Пожалуйста, дайте мне знать, если мне нужно добавить дополнительную информацию о моей среде, спасибо.

UPDATE: эта проблема возникает даже в моей рабочей среде, которая не использует пользовательский TLD. Другие сайты, использующие cookies, работают нормально, и cookies включены.

3 ответов


двойные кавычки формально являются незаконными в значении cookie. Если вы избегаете их как %22 он будет работать.


вы проверили, является ли это проблемой с доменами cookie ? Я предполагаю, что вы используете Javascript для установки/чтения файлов cookie ? В любом случае есть 4 Проблемы с доменом cookie, которые вы можете проверить (я знаю, что у меня была эта проблема со старой версией FF):

1-проверьте наличие незаконных символов cookie:разрешенные символы cookie вам может быть запрещено использовать " - " или " = " в имени cookie, и вы не должны использовать символы, отличные от ASCII, в cookies вообще. A base64 кодирование может справиться с этим.

2 - проверьте, что домен, на котором вы устанавливаете свой cookie (с помощью кода javascript или любым другим способом), идентичен домену, на котором выполняется код.

3 - проверьте, что домен cookie не является localhost; посмотрите, можете ли вы проверить настройку cookie из удаленного домена

4-Если вы используете JS для установки куки, попробуйте протестировать, если вы можете установить куки с CGI в вашем браузере, чтобы убедиться, что это не проблема браузера. Если это работает, что он должен, посмотреть, можете ли вы прочитать cookie с помощью JS (в отличие от его установки).

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


глядя на эти скриншоты Opera, они кажутся запросами AJAX / XHR, которые обрабатываются в течение той же секунды. Возможно ли, что Javascript запускает оба этих запроса "одновременно", поэтому ответ от" первого "не поступает до того, как запрос на" второй " будет построен, и поэтому куки - файлы еще не установлены?

Я не знаком с технологиями / инструментариями, которые вы используете, поэтому не знаю, являются ли они биржевым кодом или частью вашего пользовательское приложение.