2010-04-26 36 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