Django - Ajax请求中的空Session数据

7

我有一个ajax视图,我想设置一个会话变量,如下所示:

def upload(request, *args, **kwargs):  
    request.session['test'] = 'test'  
    request.session.modified = True  
    print request.session.items()  

我有另一个普通视图,类似于这样:

def advertise(request):  
    print request.session.items()  

I get these two dicts printed to shell:

[('test', 'test')]  
[('_auth_user_backend', 'django.contrib.auth.backends.ModelBackend'), ('_auth_user_id', 26L)]

为什么我在ajax视图中设置的会话数据不能传递到常规视图?如果我在常规视图中设置会话数据,一切都很好,但似乎ajax请求包含空的会话数据?有人遇到过类似的情况吗?非常感谢任何建议。谢谢。

只是一个小建议。尝试使用Django Debug工具栏,看看是否可以找到任何有关问题所在的提示。您可以在此处下载它:http://github.com/robhudson/django-debug-toolbar。希望这能帮助到您。 - Jens
1
您是否会通过 cookie 将相同的会话 ID 发送到服务器? - Almad
1个回答

6
我今天也遇到了同样的问题。虽然我不认为OP在等待3个月后仍在等待答案 :-),但这可能对其他人有所帮助。
我像这样发送Ajax请求...
$.ajax({url: 'http://localhost:8000/testgame/getTime/', 
        async: false, dataType: 'text', 
        success: function(text) { 
            time = new Date(text); 
        }, error: function(http, message, exc) { 
            time = new Date(); 
    }}); 
...并像这样在Firefox中访问应用程序:
http://127.0.0.1:8000/game/config/
问题是在这种情况下,localhost和127.0.0.1不是相同的!请注意区分。

谢谢!我也遇到了同样的问题,让我有点疯狂。 :) - mjjohnson
哇,真不敢相信我浪费了几个小时在本地主机和 127.0.0.1 之间的区别上....它们应该是一样的 >_< - Christiaan Maks
1
https://dev59.com/v5fga4cB1Zd3GeqPBtjR - nvd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接