首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在使用vanilla js向django发出ajax post请求

我正在使用vanilla js向django发出ajax post请求
EN

Stack Overflow用户
提问于 2021-03-07 08:55:58
回答 1查看 239关注 0票数 0

我正在尝试向django发出ajax post请求,这是js代码片段

代码语言:javascript
复制
const xhr = new XMLHttpRequest();

            console.log(xhr.readyState);
            
            xhr.open('POST', '');

            var data = '{% csrf_token %}';

            console.log(data);

            console.log(typeof(data));

            xhr.setRequestHeader('X-CSRF-Token', data);
            
            xhr.onload = function(){

                console.log(xhr.readyState);

                console.log(xhr.status);

                if(xhr.status == 200){
                
                    console.log(JSON.parse(xhr.responseText));
                
                }else{
                    console.log("Something went wrong!!");
                }

            }
            
            xhr.send({'userId' : userId})
        }

这是我的错误日志:

我收到了一个403禁止错误,有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-07 10:01:59

此函数将为您提供csrf-token

代码语言:javascript
复制
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
    const cookies = document.cookie.split(';');
    for (let i = 0; i < cookies.length; i++) {
        const cookie = cookies[i].trim();
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) === (name + '=')) {
            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
            break;
        }
    }
}
return cookieValue;
}

然后:

代码语言:javascript
复制
const csrftoken = getCookie('csrftoken');

以获取csrf-token

同样值得关注的是更改X-CSRF-Token

代码语言:javascript
复制
xhr.setRequestHeader('X-CSRF-Token', data);

X-CSRFToken令牌

代码语言:javascript
复制
xhr.setRequestHeader('X-CSRFToken', data);

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66512218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档