django通过javascript登录[重复]
Posted
技术标签:
【中文标题】django通过javascript登录[重复]【英文标题】:django login through javascript [duplicate] 【发布时间】:2013-03-14 02:57:45 【问题描述】:我正在尝试将 django 用于我的网站。我使用此代码实现了登录:7
user_django = authenticate(username=email, password=passw)
login(request, user_django)
使用 django rest 框架正在工作。但是当我将它与 ajax 请求一起使用时,我认为它不存储 cookie。 我还使用 django 函数来检查用户是否已登录:
if request.user.is_authenticated():
return Response('1')
else:
return Response('0')
但它总是返回 0。我是否需要在客户端做一些特殊的事情来存储登录信息?
我的 javascript 登录:
function userLogin()
var user_email = $('#login_user_email').val();
var user_pwd = $('#login_user_pwd').val();
var data = email:user_email, password:user_pwd;
$.ajax(prefix+ 'userLogin/',
success: function(output, status, xhr)
$('#login_btn').click();
,
data: data,
type: 'POST'
);
【问题讨论】:
你能发布django日志文件吗? 此日志?[24/Mar/2013 11:26:45] "POST /api/userLogin/ HTTP/1.1" 200 17 [24/Mar/2013 11:30:03] "GET /api/getOpeningAds/?format=json HTTP/1.1" 200 4121 [2013 年 3 月 24 日 11:31:29] "POST /api/userLogin/ HTTP/1.1" 200 17 [2013 年 3 月 24 日 11:31: 50]“GET /api/checkLogin/HTTP/1.1”200 3 [2013 年 3 月 24 日 11:49:35]“GET /api/getOpeningAds/?format=json HTTP/1.1”200 4121 [2013 年 3 月 24 日11:49:51]“POST /api/userLogin/HTTP/1.1”200 17 问题是 django 正在返回“set-cookie”和响应,但是当我使用 chrome“inspect element”访问资源时,会话 ID 不存在? function userLogin() var user_email = $('#login_user_email').val(); var user_pwd = $('#login_user_pwd').val(); var data = email:user_email, password:user_pwd; $.ajax(prefix+ 'userLogin/', success: function(output, status, xhr) $('#login_btn').click(); , data: data, type: 'POST' ); 【参考方案1】:这对我来说是一个熟悉的问题,可能与 SO 上的其他问题重复,
看看这些,你会找到解决办法的。
Django CSRF check failing with an Ajax POST request "CSRF token missing or incorrect" while post parameter via AJAX in Django JQuery + AJAX + Django = CSRF ?【讨论】:
以上是关于django通过javascript登录[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Django,Javascript:通过 javascript innerHtml 注入 DOM 的表单在提交时崩溃 google chrome 选项卡。在 IE 中工作