Django - 通过Ajax请求启动会话

时间:2010-07-17 01:29:08

标签: ajax django django-authentication django-login

我需要知道如何在Django中通过Ajax启动会话。我完全按照下面所描述的那样做,但它不起作用!请求已正确发送,但不会启动任何会话。如果一个请求直接没有ajax它的工作原理!发生了什么事?

'#urls

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);
 });

1 个答案:

答案 0 :(得分:1)

你没有打电话给login_view。你是ajax请求转到调用/logout/的{​​{1}}网址。

此外,autenticacao.views.logout_view之后的?>在您的获取网址中看起来不正确。

我的猜测是你应该做username=usuario之类的事情。 (但我需要看到你的登录URL映射以确定)。

此外,出于安全考虑,您应该http://localhost:8000/login/?username=usuario&password=senha登录信息并使用POST,但这是一个不同的问题。