Ответ 1
Двойные кавычки формально незаконны в значении cookie. Если вы избежите их как % 22, он будет работать.
Во-первых, я не уверен, что это проблема в Opera 12.01 или нет, но проблема возникает только в Opera. Я тестировал в браузерах FF14, Chrome 21, Safari 5 (Windows) и Safari Mac и Webkit на Android и iPhone.
Мое приложение запускается на платформе trigger.io forge и использует прокси для маршрутизации запросов из веб-приложения в службу. Прокси просто перенаправляет запросы и файлы cookie, и это работает в большинстве браузеров.
После проверки запроса в dragonfly я заметил, что сервер отправляет соответствующие заголовки в ответ, но Opera, похоже, игнорирует установку значений. Мне интересно, связано ли это с некоторым неправильным значением пути для файла cookie. Я добавил скриншоты из 2 запросов в Firefox и Opera.
Как вы можете видеть на экранах, FF видит заголовки файлов cookie и устанавливает их соответствующим образом, но Opera не делает этого.
Я не включил код из прокси-сервера, который выполняет пересылку запроса, поэтому, пожалуйста, дайте мне знать, если вам это нужно, чтобы получить некоторое представление. В конце службы я запускаю PHP и Codeigniter. Пожалуйста, дайте мне знать, если мне нужно добавить больше информации здесь, в мою среду, спасибо.
UPDATE: эта проблема возникает даже в моей рабочей среде, которая не использует пользовательский TLD. Другие сайты, которые используют файлы cookie, работают нормально, а файлы cookie включены.
Двойные кавычки формально незаконны в значении cookie. Если вы избежите их как % 22, он будет работать.
Вы проверили, если это проблема с доменами cookie? Я предполагаю, что вы используете Javascript для установки/чтения файлов cookie? В любом случае есть 4 проблемы с файлом cookie, которые вы можете проверить (я знаю, что у меня была эта проблема со старой версией FF):
1 - проверьте наличие недопустимых символов cookie: разрешенные символы cookie вам не разрешено использовать '-' или '=' в имени файла cookie, и вы должны Использовать не-ASCII-символы в файлах cookie вообще. Кодирование base64 может иметь дело с этим.
2 - убедитесь, что домен, на котором вы установили свой файл cookie (с помощью кода javascript или любым другим способом), идентичен домену, на котором выполняется код.
3 - проверьте, что домен cookie не является localhost; посмотрите, можете ли вы проверить настройку файла cookie из удаленного домена
4 - если вы используете JS для настройки своих файлов cookie, попробуйте проверить, можете ли вы установить cookie с CGI в своем браузере, чтобы убедиться, что это не проблема браузера. Если он работает, то он должен посмотреть, можете ли вы прочитать cookie с помощью JS (в отличие от его настройки).
Дайте мне знать, как это происходит в комментариях, я неоднократно занимался подобными проблемами и в зависимости от того, что вы получаете с этими проверками, я уверен, что могу помочь вам исправить эту проблему.
Глядя на эти скриншоты Opera, они кажутся запросами AJAX/XHR, которые обрабатываются в течение одной секунды. Возможно ли, что Javascript запускает оба этих запроса "одновременно", поэтому ответ от "первого" не доходит до того, как будет создан запрос для "второй" - и, следовательно, файлы cookie еще не установлены?
Я не знаком с используемыми вами технологиями/инструментариями, поэтому не знаю, являются ли они кодом запаса или частью вашего пользовательского приложения.