【问题标题】:Django - Empty session data in ajax requestsDjango - ajax 请求中的空会话数据
【发布时间】:2011-02-12 11:15:27
【问题描述】:

我有一个 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()  

我将这两个字典打印到 shell:

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

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

【问题讨论】:

  • 只是一点建议。尝试使用 Django 调试工具栏并查看是否可以找到任何关于问题所在的提示。你可以在这里下载:github.com/robhudson/django-debug-toolbar。希望对您有所帮助。
  • 您是否向服务器发送相同的会话 ID(通过 cookie)?

标签: ajax django session request


【解决方案1】:

我今天也遇到了同样的问题。虽然我不认为 OP 在 3 个月后仍在等待答案:-),但这可能对其他人有所帮助。

我正在发送这样的 Ajax 请求...

$.ajax({url: '@987654321@', 
        async: false, dataType: 'text', 
        success: function(text) { 
            time = new Date(text); 
        }, error: function(http, message, exc) { 
            time = new Date(); 
    }}); 

...并像这样在 Firefox 中访问应用程序:

@987654322@

问题是在这种情况下 localhost 和 127.0.0.1 不一样!

【讨论】:

  • 谢谢!我遇到了同样的问题,这让我有点发疯。 :)
  • 哇,不敢相信我在 localhost 和 127.0.0.1 之间的区别上浪费了几个小时......它们应该是一样的 >_
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 2017-02-23
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
相关资源
最近更新 更多