Ajax请求Django应用程序

时间:2017-04-12 03:08:40

标签: jquery ajax django

我正在尝试使用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的视图函数。

2 个答案:

答案 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/

https://simpleisbetterthancomplex.com/tutorial/2016/08/29/how-to-work-with-ajax-request-with-django.html