我正在尝试使用jquery post方法提交表单。每次提交表单时,请求参数(request.POST)为空。我不确定为什么ajax请求无法发送参数。 js代码:
<script>
$('#myform').on('submit', function(e){
let username = $("#username").val();
let password = $("#password").val();
let url = $('#myform').attr('action');
$.post(url, {
username:username,
password:password
}, function(d){
alert('success');
});
});
$('#login').click(function(e){
e.preventDefault();
$('#myform').submit();
});
这一步我做错了什么?如果需要,我可以使用html表单,以及处理表单操作URL的视图函数。
答案 0 :(得分:1)
尝试使用以下内容,并检查Django服务器日志以检查是否收到了请求,以及请求状态代码是什么。
$.ajax({
url: url,
data: data: {
username:username,
password:password,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
type: 'POST',
success: function(data) {
console.log(data.message);
},
error: function(data) {
console.log(data.message);
}
},
答案 1 :(得分:1)
尝试@Algorithmatic的建议,我认为它会起作用。还可以访问下面的这些内容,以便更好地理解AJAx请求。这对我来说也很痛苦。
https://realpython.com/blog/python/django-and-ajax-form-submissions/