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 Android NDK编译lame问题汇总
Android NDK编译lame问题汇总
2
后台接收json请求参数兼容数组和单个对象
后台接收json请求参数兼容数组和单个对象
3
Spring Boot之@ControllerAdvice
Spring Boot之@ControllerAdvice
4
Node环境部署
Node环境部署
5
CentOS 7 下搭建NFS服务
CentOS 7 下搭建NFS服务
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。