【问题标题】:Update Django session variable in javascript?在javascript中更新Django会话变量?
【发布时间】:2011-06-03 12:47:17
【问题描述】:

我想在 Javascript 事件(实际上是 jQuery)之后更新 Django 会话变量。

我需要通过 POST 请求执行此操作吗?

或者 Javascript 和 Django 可以以某种巧妙的方式共享会话变量,在这种情况下,我可以直接从 jQuery 更新会话变量吗?我对细节有点模糊。

谢谢!

【问题讨论】:

    标签: javascript django session


    【解决方案1】:

    您可以通过 Ajax 做到这一点。你需要一个简单的 Django 视图来更新会话变量,jQuery 将调用它:

    def update_session(request):
        if not request.is_ajax() or not request.method=='POST':
            return HttpResponseNotAllowed(['POST'])
    
        request.session['mykey'] = 'myvalue'
        return HttpResponse('ok')
    

    和 JS:

    $.post('/update_session/', function(data) {
        alert(data);
    });
    

    【讨论】:

    • 您的 Django 视图中有一个拼写错误,在分配值后尾随 ]。此外,您应该返回 HttpResponseNotAllowed(['POST',]) 而不是 Http404()
    • 希望你不介意我的修复。还将and not 替换为or not
    • 怎么样,我们能不能让它更通用一点,你可以设置任何p
    • 从请求参数中获取mykey和myvalue安全吗?
    猜你喜欢
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    相关资源
    最近更新 更多