首页 > 解决方案 > 将数据从 Javascript 发布到 Django 时如何修复 403(禁止)错误

问题描述

var upload = function(files) {

    $.ajax({
        type: 'POST',
        processData: false,
        contentType: false,
        cache: false,
        data: {
            csrfmiddlewaretoken: '{{csrf_token}}',
            files: files
        },
        enctype: 'multipart/form-data',
        url: 'files/',    
    });   
}

我尝试将文件发送到 Django,但出现此错误。

jquery-3.4.1.min.js:2 POST http://localhost:8000/upload/files/ 403(禁止)

标签: javascriptdjango

解决方案


在使用 ajax 发送之前,您将令牌放在标头中

$.ajax({
    type: 'POST',
    processData: false,
    contentType: false,
    cache: false,
    beforeSend: function (xhr) {
       xhr.setRequestHeader('X-CSRFToken', '{{csrf_token}}');
    },
    data: {"files":files},
    enctype: 'multipart/form-data',
    url: 'files/',    
    }); 

推荐阅读