Невозможно установить cookie в Crossrider с помощью appAPI.request.get()

Я разрабатываю расширение Crossrider для регистрации информации с веб-страниц. Когда пользователь нажимает кнопку расширения, он запускает всплывающее окно, и в этом коде я использую appAPI.request.get() для вызова php-страницы из моего myDomain.com, которая считывает, а затем устанавливает значение cookie для myDomain.com. Это работает в IE, Chrome, Safari и Firefox, за исключением того, что на моем MacBook Safari не может установить файл cookie. Я использую точно такую ​​же версию OSX и Safari на своем iMac, и все работает нормально. Я дважды проверил, что оба префа одинаковы, и они есть.

Это возможное междоменное ограничение? Поскольку удаленная страница вызывается через js во всплывающем окне, ограничивает ли это возможность устанавливать файлы cookie для домена, в котором она находится (myDomain.com)?

редактировать 2014-05-22

/* background.js */
appAPI.browserAction.setPopup({
        resourcePath:'index.html',
        height: 380,
        width: 320
    });

...

/* index.html */
appAPI.request.get({
      url: 'https://example-domain.com/this-file-sets-a-cookie.php',
      ....
    });

person ThinkCL    schedule 22.05.2014    source источник
comment
Пожалуйста, не могли бы вы предоставить пример кода и шаги для воспроизведения проблемы, и я буду рад помочь. [Раскрытие информации: я сотрудник Crossrider]   -  person Shlomo    schedule 22.05.2014
comment
@Sholomo Я отредактировал свой вопрос, чтобы дать представление о том, что происходит. Я не уверен, что вы сможете воспроизвести, поскольку он работает в Safari на одной машине, но не на другой, как я уже сказал.   -  person ThinkCL    schedule 22.05.2014


Ответы (1)


Это было связано с тем, что Safari блокировал файл cookie. Похоже, что в некоторых случаях файл cookie рассматривается как установленный третьей стороной и, следовательно, отклоняется. Возможно, из-за того, что в адресной строке отображается URL-адрес, отличный от того, на который устанавливается файл cookie, хотя домен, из которого устанавливается файл cookie, и домен, указанный для файла cookie, совпадают. Я смог установить файл cookie, когда изменил настройки конфиденциальности на «Никогда» не отказываться от файлов cookie. Почему это работало на одном компьютере, а не на другом, когда на обоих была установлена ​​одна и та же версия ОС, одна и та же версия Safari и оба были настроены на отказ от файлов cookie от «третьих лиц и рекламодателей», неизвестно.

К счастью, я смог удалить свой php-код, который устанавливал куки, не затрагивая мой плагин.

person ThinkCL    schedule 22.05.2014