根據django all-auth的文檔,它支持通過AJAX請求登錄。當我對「accounts/login /」發出正常的發佈請求時,內容類型爲響應標題是「text/html」。 但是,當我做一個Ajax調用它是「應用程序/ JSON」。 我無法弄清楚我做錯了什麼,我嘗試在ajax調用中更改contentType和dataType,但它給出了一個400錯誤的請求錯誤。通過Django上的AJAX發佈請求進行登錄All-auth
我還沒有修改默認的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>
我試過你的代碼,但它仍然給出了400BAD請求錯誤 –
在你的settings.py中檢查ALLOWED_HOSTS,我有ALLOWED_HOSTS = ['localhost'],你也可以用*來匹配任何主機:ALLOWED_HOSTS = ['* * '] – Vladimir
仍然沒有幫助,在鉻的網絡標籤是它顯示一個xhr類型的請求或文件?在我的情況下它的xhr。還有什麼建議嗎? –