Javascript Django表单提交中缺少CSRF令牌

Javascript Django表单提交中缺少CSRF令牌,javascript,jquery,ajax,django,django-models,Javascript,Jquery,Ajax,Django,Django Models,我正在尝试通过ajax提交表单。我的模板如下:- <form method="POST" id="form1" class="SignUP signupform"> <div class="classheading">Sign-up</div> {% csrf_token %} <input type="text" name="user" placeholder="Username" class="sinp

我正在尝试通过ajax提交表单。我的模板如下:-

<form method="POST" id="form1" class="SignUP signupform">
        <div class="classheading">Sign-up</div>
        {% csrf_token %}
        <input type="text" name="user" placeholder="Username" class="sinput" required="true" />
        <input type="text"name="email" placeholder="Email" class="sinput" required="true"/>
        <input type="password"name="password"placeholder="Password" class="sinput" required="true"/>
        <input type="password"placeholder="Re-enter Password" class="sinput" required="true"/>
        <button type="submit" class="subform">Sign Up</button>
</form>
@csrf_protect
def signup(request):
if request.method == 'POST':
    form = SignupForm(request.POST)
    if form.is_valid():
        user = form.save(commit=False)
        user.is_active = False
        user.save()
        current_site = get_current_site(request)
        mail_subject = 'Activate your blog account.'
        message = render_to_string('acc_active_email.html', {
            'user': user,
            'domain': current_site.domain,
            'uid':urlsafe_base64_encode(force_bytes(user.pk)).decode(),
            'token':account_activation_token.make_token(user),
        })
        to_email = form.cleaned_data.get('email')
        email = EmailMessage(
                    mail_subject, message, to=[to_email]
        )
        email.send()
        return HttpResponse("Confirm your email.")
else:
     return JsonResponse({'success': False,'errors': [(k, v[0]) for k, v in form.errors.items()]})
在后端,我使用Django提交此表单。相应的视图如下所示:-

<form method="POST" id="form1" class="SignUP signupform">
        <div class="classheading">Sign-up</div>
        {% csrf_token %}
        <input type="text" name="user" placeholder="Username" class="sinput" required="true" />
        <input type="text"name="email" placeholder="Email" class="sinput" required="true"/>
        <input type="password"name="password"placeholder="Password" class="sinput" required="true"/>
        <input type="password"placeholder="Re-enter Password" class="sinput" required="true"/>
        <button type="submit" class="subform">Sign Up</button>
</form>
@csrf_protect
def signup(request):
if request.method == 'POST':
    form = SignupForm(request.POST)
    if form.is_valid():
        user = form.save(commit=False)
        user.is_active = False
        user.save()
        current_site = get_current_site(request)
        mail_subject = 'Activate your blog account.'
        message = render_to_string('acc_active_email.html', {
            'user': user,
            'domain': current_site.domain,
            'uid':urlsafe_base64_encode(force_bytes(user.pk)).decode(),
            'token':account_activation_token.make_token(user),
        })
        to_email = form.cleaned_data.get('email')
        email = EmailMessage(
                    mail_subject, message, to=[to_email]
        )
        email.send()
        return HttpResponse("Confirm your email.")
else:
     return JsonResponse({'success': False,'errors': [(k, v[0]) for k, v in form.errors.items()]})
但它显示403错误。在命令提示符中,它显示“CSRF_令牌丢失或不正确”。
可能的错误是什么

像这样将csrf_标记放在打开标记的后面。试一试

<form method="POST" id="form1" class="SignUP signupform">{% csrf_token %}
{%csrf\u令牌%}

像这样将csrf\U令牌放在打开标记的后面。试一试

<form method="POST" id="form1" class="SignUP signupform">{% csrf_token %}
{%csrf\u令牌%}
试试这个

$.ajax({
   url: url ,
   dataType: "json",
   type: "POST",
   data:{
    data: val ,
    csrfmiddlewaretoken: "{{ csrf_token }}",

   },
   success: function(data){
    console.log(data)
   }
 })
试试这个

$.ajax({
   url: url ,
   dataType: "json",
   type: "POST",
   data:{
    data: val ,
    csrfmiddlewaretoken: "{{ csrf_token }}",

   },
   success: function(data){
    console.log(data)
   }
 })

现在,当我输入错误信息时,它给了我内部服务器错误视图webapp.views.signup未返回HttpResponse对象。“根据上面的代码和您在这里的评论,您提交的表单似乎无效,因为您没有if语句的处理程序。没有归还任何东西。请处理您的is.valid并重试。现在,当我输入错误信息时,它会给我内部服务器错误视图webapp.views.signup未返回HttpResponse对象。“根据上面的代码和您在这里的评论,您提交的表单似乎无效,因为您没有if语句的处理程序。没有归还任何东西。处理您的is.valid并重试。您是否尝试过类似于ajax csrf的配置?是否尝试过类似于ajax csrf的配置?