2010-07-17 120 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