2010-04-26 52 views
4

我有一个AJAX观点,我想设置像这样的会话变量:Django的 - 在阿贾克斯空会话数据请求

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

我还有一个正常的观点是这样的:

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

我得到这两个字体印在壳上:

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

为什么我在ajax视图中设置的会话数据没有传递给我定期的意见?如果我在常规视图中设置会话数据,一切正常,但似乎ajax请求包含空的会话数据?有人处理过这样的事情吗?任何建议,非常感谢。谢谢。

+0

只是一点点的建议。尝试使用Django调试工具栏,并查看是否可以找到有关问题出现的任何提示。你可以在这里下载它:http://github.com/robhudson/django-debug-toolbar。希望能帮助你。 – Jens 2010-04-26 16:57:10

+1

您是否通过cookie向服务器发送了相同的会话ID? – Almad 2010-04-26 17:16:38

回答

5

我今天遇到同样的问题。虽然我不认为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/ 

而问题是,本地主机,127.0.0.1是在这种情况下不一样!

+0

谢谢!我遇到了同样的问题,这让我有点疯狂。 :) – mjjohnson 2012-04-17 23:53:41

+0

哇,不能相信我浪费了本地主机和127.0.0.1之间的区别......他们应该是相同的> _ < – 2015-01-21 19:31:41