2012-05-11 3 views
0

В отношении спецификации cookie это недопустимо (тот же принцип, что и для той же политики происхождения для вызовов ajax). Что касается SOP, это не применяется, когда вы запускаете свой javascript из файла: /// (например, внутри UIWebView). Это хорошо документировано и работает в моем примере. Как насчет печенья?Удаление cookie из другого домена при запуске локально

У меня есть приложение, которое делает запрос на сервер через javascript, работающий, для всех целей и задач, локально (файл: ///). Запрос на аутентификацию задает куки-файл с именем let 'say', path: '/' и domain 'serverdomain.com'. Во время выхода из системы мне нужно очистить вышеупомянутый файл cookie, но у меня возникает ощущение, что мои попытки терпят неудачу, потому что у меня нет доступа к нему, потому что он считается из другого домена. Звучит это знакомо? Или я здесь? Есть ли способ совершить такой подвиг?

Пример

Я бегу мой JavaScript на Chrome (с помощью файла: /// как URI). Я запускаю логин и достаточно скоро вижу в файле cookie-менеджера следующий куки-файл (это не фактический файл cookie, но он выглядит одинаково, кроме имени, которое мы можем сказать, это «альфа»). Файл cookie не отмечен только http, но он имеет флажки «session» и «secure» (в отличие от скриншота ниже).

screenshot from cookie manager

Теперь имейте в виду, что если я использую «инспектировать элемент» особенность Chrome и перейти к «Cookies», я получаю 'Там нет куки для этого сайта.

chrome - inspect element/cookies

Во время выхода из системы нужно удалить это печенье. Поэтому я делаю это в javascript:

document.cookie="alpha=; expires=Thu, 10 May 2000 15:07:07 GMT" 

Печенье не исчезает. Единственный способ заставить его уйти - это удалить его из менеджера файлов cookie. Должен ли я удалять этот файл cookie (во время работы из файла: ///)? Если да, то как?

ответ

2

Если файл cookie был создан в другом домене, этот файл cookie не будет отправлен клиентом на сервер во втором домене, поэтому вы не сможете его удалить. Вы можете установить cookie с тем же именем в этом домене, но это не будет тот же файл cookie, что и тот, который существует в первом домене.

+0

Не уверен, что это отвечает на мой вопрос. Файл cookie устанавливается сервером и возвращается клиенту. Каждый последующий запрос, который я делаю на этот сервер, содержит тот же файл cookie. Вопрос становится, как я могу удалить файл cookie, так что в запросе гнезда на подачу cookie не отправляется. Так как я, кажется, работает из другого домена, это возможно? – fnCzar

+0

@fnCzar, если вы работаете в другом домене, клиент вообще не отправит файл cookie. Но если вы говорите, что клиент отправляет файл cookie, это означает, что этот файл cookie был создан в этом домене, и вы можете удалить его с сервера, установив заголовок expires на дату в прошлом. –

+0

Но вопрос в том, можно ли удалить клиент? – fnCzar

Смежные вопросы