Установка файлов cookie в вызове AJAX с помощью Django - PullRequest
4 голосов
/ 07 декабря 2011

У меня есть сайт Django, и я пытаюсь установить cookie в ответ на вызов AJAX. Я сделал вопрос более общим, так как теперь никто не отвечает на Cookies, не работающие с вызовом AJAX от jQuery к Django

На стороне клиента у меня есть функция JavaScript, отправляющая запрос GET на URL:

$.ajax({
    url: url,
    success: function(data) {
        alert('Load was performed.');
    }
});

На стороне сервера у меня есть код, устанавливающий cookie:

def vote(request, slug, rating):

    # Some irrelevant code...
    response = HttpResponse('Vote changed.')
    response.set_cookie('vote', 123456)
    return response

Я получаю ответ в коде jQuery, но проблема в том, что cookie никогда не устанавливается в браузере.

Что я делаю не так?

Спасибо!

1 Ответ

3 голосов
/ 07 декабря 2011

Попробуйте создать файл cookie с указанием даты истечения срока действия, как показано ниже:

var max_age = 14*24*60*60 # two weeks
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")

response.set_cookie('vote', 123456, max_age=max_age, expires=expires)

Извинения, если пример немного отклонился - прошло много времени с тех пор, как я работал с Django и мне пришлось поискать cookie/ синтаксис даты.

...