2010-07-17 121 views
1

我需要知道如何在Django中通過Ajax啓動會話。我完全按照下面的描述進行操作,但它不起作用!該請求被正確發送,但不會啓動任何會話。如果一個請求直接沒有Ajax它的作品!到底是怎麼回事?Django - 由Ajax開始會話請求

'#網址

r'^logout/$', 'autenticacao.views.logout_view' 

' 登錄#查看

def login_view(request): 

    username = request.GET.get('username', '') 
    password = request.GET.get('password', '') 

    user = authenticate(username=username, password=password) 
    if user is not None: 
     if user.is_active: 
      login(request, user) 
      return HttpResponse(user.get_profile().sos_user.name)    
    return HttpResponse('user invalido') 

「在一個HTML頁面#AJAX

$(function(){ 

$.get('http://localhost:8000/logout/?username=usuario?>&password=senha', function(data){ 
    alert(data); 
}); 
+0

@TokenMacGuy:謝謝你的清理,一旦格式正確,問題就立即跳出來。 – sdolan 2010-07-17 01:44:50

回答

1

你不CAL ling login_view。你是阿賈克斯的請求是去/logout/網址,這是調用autenticacao.views.logout_view

另外,在username=usuario之後的?>在您的get url中看起來不正確。

我的猜測是你應該做點像http://localhost:8000/login/?username=usuario&password=senha。 (但我需要看到你的登錄URL映射是肯定的)。

另外,出於安全原因,您應該是POST登錄信息並使用HTTPS,但這是一個不同的問題。

+0

對不起,URL正確的是:r'^ login/$','autenticacao.views.login_view',但它灌輸不起作用! – 2010-07-19 00:56:32

+0

你能看到你成功登錄嗎?嘗試在'login(request,user)'後面添加'import pdb; pdb.set_trace()',或者甚至只是'拋出'一個異常。 – sdolan 2010-07-19 01:57:50