Django POST请求报错CSRF token missing or incorrect解决

在JS中,使用post方法提交数据到Django后台,如果页面没有做跨站伪造,则会被浏览器拒绝访问,报错如下:

Forbidden (CSRF token missing or incorrect.): /appblog/payment
[18/Jun/2020 08:52:08] "POST /appblog/payment HTTP/1.1" 403 2513

解决方法:前端ajax请求提交CSRF token信息

<!DOCTYPE html>
<html lang="zh">
{% csrf_token %}
<head>

...

<script>
    ...
    var csrfToken = $("[name='csrfmiddlewaretoken']").val();
    //方法一
    $.ajaxSetup({
        data: {csrfmiddlewaretoken: csrfToken}
    })
    $.ajax({
        url: '/payment',
        type: 'post',
        contentType: 'application/json;charset=utf-8',
        data: data,
        async: true,
        //方法二
        headers: {'X-CSRFToken': csrfToken},
        //方法三
        beforeSend: function(xhr, e) {
            xhr.setRequestHeader('X-CSRFToken', csrfToken)
        },
上一篇 Django静态文件目录配置
下一篇 Django HttpResponse与JsonResponse区别
目录
文章列表
1 Flutter提示弹框
Flutter提示弹框
2
Twig模版语言入门
Twig模版语言入门
3
Spring Security之AuthenticationManager、ProviderManager、AuthenticationProvider用户认证源码分析
Spring Security之AuthenticationManager、ProviderManager、AuthenticationProvider用户认证源码分析
4
JS跳转页面实现方式
JS跳转页面实现方式
5
Lombok使用详解
Lombok使用详解
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。