cookie не отправляется при запросе JS - PullRequest
4 голосов
/ 02 декабря 2010

Вопрос , первоначально размещенный на веб-мастерах , было рекомендовано переместить его сюда.

Я размещаю веб-сервис и предоставляю своим членам букмарклет Javascript, который загружаетскрипт JS с моего сервера.Однако клиенты должны войти в систему, чтобы получить JS-скрипт.Это работает почти для всех.Тем не менее, некоторые пользователи в настройках (например, браузер / ОС), которые, как известно, работают на для других людей, сталкиваются со следующей проблемой: когда они запрашивают скрипт через букмарклет javascript с моего сервера, их cookie с моего сервера делаетне включаются в запрос, и поэтому они всегда «не аутентифицированы».

Я делаю запрос следующим образом:

var myScript = eltCreate('script');
myScript.setAttribute('src','http://myserver.com/script');
document.body.appendChild(myScript);

В приступе отчаянного отчаянияЯ изменил страницу скрипта, чтобы просто вывести «Мой cookie имеет [x] элементов», где [x] равно count($_COOKIE) на http://myserver.example.com.Если это подмножество пользователей запрашивает сценарий, используя вышеуказанный метод, закодированный в букмарклет, сообщение гласит: «Мой файл cookie содержит 0 элементов».Когда они получают доступ к URL-адресу непосредственно в своем браузере, появляется сообщение «В моем cookie-файле 7 элементов».

Что, черт возьми, может происходить ?!И что более важно, как бы я это исправить?

1 Ответ

2 голосов
/ 02 декабря 2010

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

У меня возникли похожие проблемы при размещении IFRAME, указывающего на домен B, на сайт, размещенный в домене A. Некоторые браузеры отказалисьIFRAME установил файлы cookie для своего собственного домена , поскольку это вызвало проблему конфиденциальности.

Возможно, вы захотите сохранить хэш в атрибуте script src и таким образом аутентифицировать пользователей.

Редактировать: Это то, о чем я говорю: Настройка междоменных файлов cookie в Safari

...