Действительно странное поведение заголовка Cookie?- Печенье - PullRequest
4 голосов
/ 25 июля 2010

Я использую Firefox 3.6.8 для этих тестов.

Я устанавливаю cookie в заголовки ответов моего веб-приложения, используя:

Set-Cookie: session=7878dfdsfjsdf89sd89f8df9

Это , похоже, не перекрывает Cookie сессии.


Когда вместо этого выполняется запрос Firefox даже отправляет дубликаты куки :

Cookie: session=7d75cd8f55895cbccb0d31ee07c7afc0; 
        session=671e8448a5cebda0442005a186cf69a3; 
        4cb6f2d75c9ffc8916cb55bcbaafecd8

Что происходит ??Любые идеи будут великолепны!=)


Это довольно пагубно в моем случае ... если бы кто-то мог объяснить, что происходит, это действительно помогло бы мне!

Ответы [ 2 ]

5 голосов
/ 25 июля 2010

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

Я подозреваю, что вы хотите просто установить cookie с глобальным путем для вашего сайта и всего вашего домена. Вот как то так:

Set-Cookie: session=7878dfdsfjsdf89sd89f8df9; path=/; domain=.mysite.com
3 голосов
/ 25 июля 2010

Вы можете удалить предыдущий файл cookie, используя объект response .

response.delete_cookie(cookie_key)

Набор файлов cookie доступен через объект request в словаре request.COOKIES, и вы можете получить ключ оттуда.

Поскольку вы используете Django, вот как вы можете сделать это в функции просмотра:

def my_view(request):
    # do some work and create a response object
    response = HttpResponse(some_content)

    # first delete any previously set cookie named "session"
    if 'session' in request.COOKIES:
        response.delete_cookie('session')

    # set the new cookie
    response.set_cookie('session', <cookie value goes here>')
    return response
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...