Javascript Ajax post请求403错误仅适用于某些用户?

Javascript Ajax post请求403错误仅适用于某些用户?,javascript,jquery,django,ajax,Javascript,Jquery,Django,Ajax,我一直在让朋友们尝试我的网站,一些朋友在使用ajax的任何函数上都会出现403禁止错误。我很困惑为什么只有一些人会出错,尤其是当每个人都使用相同的浏览器时。有人知道为什么吗?我使用Django作为一个框架,我想我已经完成了文档中的所有工作 我的一个使用ajax的函数示例: $('#button').click(function(){ $.ajax({ url: '/get_url/', type: "POST",

我一直在让朋友们尝试我的网站,一些朋友在使用ajax的任何函数上都会出现403禁止错误。我很困惑为什么只有一些人会出错,尤其是当每个人都使用相同的浏览器时。有人知道为什么吗?我使用Django作为一个框架,我想我已经完成了文档中的所有工作

我的一个使用ajax的函数示例:

$('#button').click(function(){
        $.ajax({
            url: '/get_url/',
            type: "POST",
            data: {
                data_name: data_to_send
            },
            beforeSend: function (xhr) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken);
            },
            success: function (data) {
                //change some html text using data
            },
            error: function (error) {
                console.log(error);
            }
        });
    });
使用以下命令:

$('#button').click(function(){
    $.ajax({
        url: '/get_url/',
        type: "POST",
        data: {
            data_name: data_to_send
        },
        headers: {
            "X-CSRFToken": "{{ csrf_token }}",
        },
        success: function (data) {
            //change some html text using data
        },
        error: function (error) {
            console.log(error);
        }
    });
});

通过确保所有我的表单标记都有method='post'和{{crsf_token}}进行修复。

它是如何“不工作”的,您是否有错误或回溯?您能显示要发送的数据吗?我发现您没有在请求中发送数据类型。这可能会使您的Ajax无法工作。检查这个文档,他们得到一个403禁止的错误。Tran,发送的数据只是一堆数组。都是分开的,但我只是用一个变量来表示它们。我会调查数据类型的事情。这仍然会给出403禁止的错误。你在哪里使用这个代码?在独立的js文件或模板文件中?此代码在我的main.js文件中
{{csrf_-token}
仅在模板文件中工作,要将csrf_-token值传递给main.js,您应该使用如下格式:
头:{“X-CSRFToken”:$(This.find('input[name=“csrfmiddlewaretoken”]).val(),}