чудо{вищные} заметки

Sorry for my terrible english. My native language is PHP.

XMLHttpRequest, Opera & cookies

Что ни день, то сюрприз…
Оказывается XmlHttpRequest в этой самой Opera живёт своей собственной жизнью — он существует отдельно от браузера, не знает о существовании cookies и настроек способных "отрегулировать" такое поведение объекта я не нашёл.

Может оно конечно так и задумано (из соображений безопастности, желания отличиться и т.п.), но тогда почему в других браузерах (в частности FF,SM, IE) XMLHttpRequest вместе с запросами отсылает доступные cookies (хранимые и сессионные) ? Они действуют неправильно ? Это небезопастно ? Или где?

Выходов вижу несколько:

  1. Передавать идентификатор с URL-ом (ну нах)
  2. Делать альтернативный интерфейс без XMLHttpRequest (ну о-о-очень лениво…)
  3. Писать идентификатор в javascript и потом для Opera добавлять xmlhttprequestObj.setRequestHeader('Cookie',from_js_session_name + '='+from_js_session_value);
  4. Забить на Opera

Почему мне наиболее симпатичен четвёртый вариант ? До смерти надоело подстраиваться под каждый релиз этой самой злоеб Оперы. Хватает гемороя с IE.

P.S.
И мне не будет стыдно смотреть в глаза пользователям Opera. Вот такое я Чудовище.

20.05.2006 UPDATE:
Спасибо всем откликнувшимся. Проблема решилась…
2WebAngel Да спасибо, действительно дело было не совсем в кукисах (не совсем в XHR). точнее не только в них.
(Опера скачивала favicon.ico, которого не было, далее mod_rewrite -> обработчик.php и т.д. и в общем вызывался нужный файл, в котором требовались треклятые куки.
НО запрос к favicon.ico в опере не передаёт COOKIE.
Что к чему и почему я не знаю. но поскольку все другие-остальные браузеры их передаёт считаю это ненормальным)

Technorati Tags: , ,

Реклама

Апрель 19, 2006 - Posted by | DailyWTF, dev, js, web

4 комментария »

  1. Насчет отношения к Опере полностью поддерживаю.

    комментарий от kropp | Апрель 19, 2006

  2. странно, но у меня опера работает (newsalloy.com)

    т е зади на сайт и посмотри что есть полная (ну почти) поддержка через AJAX ( XMLHttpRequest)

    я ничегон е изобретал… може чего не понимать ?

    комментарий от lordtime | Апрель 19, 2006

  3. 2lordtime:
    может я ситуацию не полностью описал:
    1. есть страница /bla-bla-bla/bla.php, этот самый bla.php ставит куку (печеньку) bla_cookie=bla_value;expires=На днях GMT;path=/ (в корень домена) на определённую дату (и есть просто session_start(); // кука с временем жизни до закрытия браузера ).
    2. на полученной странице есть javascript, в котором c помощью xmlhttpequest дёргаются данные с сервера.
    3. В «нормальных» браузерах этот самый xhr передаёт куку bla_cookie, передаёт сессионую куку и вообще работает так как я хочу ;o), а из оперы передаётся только сессионая кука.

    Вообще в about:config нашлась опция «Accept Cookies Session Only», но она не включена.
    На самой странице bla.php хранимая кука видна.

    P.S.
    Проверял в Операх версий 8.5.X и 9.X (которая beta)…
    И вообще мне наверное нужно выделить тестовый случай и положить его на всеобщее обозрение…

    комментарий от MiRacLe | Апрель 19, 2006

  4. скорей все ты что то не так делаешь.
    у меня опера в тесте (http://www.mnot.net/javascript/xmlhttprequest/) прошла тест на кукисы :)

    P.S. Opeara v8.02

    комментарий от WebAngel | Май 19, 2006


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: