使用Django在AJAX调用中设置cookie

时间:2011-12-07 15:31:48

标签: jquery ajax django setcookie

我有一个Django网站,我正在尝试在AJAX调用的响应中设置一个cookie。因为现在有人在回答Cookies not working with an AJAX call from jQuery to Django

,所以我提出的问题更为笼统

在客户端,我有一个JavaScript函数向URL发送GET请求:

$.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 个答案:

答案 0 :(得分:3)

尝试创建指定过期日期的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 /日期语法。