根据 django all-auth 的文档,它支持通过AJAX请求登录。当我向“accounts/login/”发出正常的post请求时,响应头的内容类型是“text/html”。
但是当我进行 ajax 调用时,它是“application/json”。
我无法弄清楚我做错了什么,我尝试更改 ajax 调用中的 contentType 和 dataType,但它给出了 400 Bad request 错误。
我没有修改默认 Django all-auth 应用程序的任何 URL 或视图。
我在这里包含了 JavaScript 代码 -
<script type="text/javascript">
var $button = $('#login_button');
$button.on('click',function(){
var data = {"csrfmiddlewaretoken" : document.getElementsByName('csrfmiddlewaretoken')[0].value,
"login": $('#id_login').val(),
"password": $('#id_password').val(),
"remember": $('#id_remember').val() };
var temp = {'X-CSRFToken': document.getElementsByName('csrfmiddlewaretoken'[0].value };
$.post({
url : "{% url 'account_login' %}",
headers: temp,
type: "POST",
data : data,
contentType: "application/x-www-form-urlencoded",
dataType: "text",
success : function(data) {
// console.log(data);
},
});
});
</script>
它对我有用,尝试:
$.post("{% url 'account_login' %}", {
"csrfmiddlewaretoken" : document.getElementsByName('csrfmiddlewaretoken')[0].value,
"login": $('#id_login').val(),
"password": $('#id_password').val(),
"remember": $('#id_remember').val()
},
function (data, status) {
// console.log(data);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)