2010-07-17 4 views
1

장고에서 Ajax 세션을 시작하는 방법을 알아야합니다. 나는 아래에 기술 된대로 정확하게하고 있지만, 작동하지 않는다! 요청이 올바르게 전송되었지만 세션을 시작하지 마십시오. 아약스없이 직접 요청하면 작동합니다! 무슨 일 이니?Django - Ajax 요청 세션 시작

'# URL을

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 페이지에서 # 아약스

$(function(){ 

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

@TokenMacGuy : 청소 해 주셔서 감사합니다. 문제가 올바르게 포맷 된 즉시 바로 나에게 뛰어 왔습니다. – sdolan

답변

1

당신은 아니에요 칼 login_view. 아약스 요청은 autenticacao.views.logout_view이라고하는 /logout/ URL로 이동합니다.

username=usuario 후에 ?>이 (가) get url에서 제대로 보이지 않습니다.

내 생각에 http://localhost:8000/login/?username=usuario&password=senha과 같은 작업을해야합니다. (하지만 로그인 URL 매핑을 확인해야합니다).

또한 보안상의 이유로 POST 로그인 정보를 입력하고 HTTPS을 사용해야합니다.하지만 이는 다른 문제입니다.

+0

죄송합니다. 올바른 URL은 r '^ login/$', 'autenticacao.views.login_view'이지만 아직 작동하지 않습니다. –

+0

성공적으로 로그인하셨습니까? 'login pdb; pdb.set_trace()'를'login (request, user)'다음에 추가하거나 예외를 단지'raise '하십시오. – sdolan