gpt4 book ai didi

javascript - 无法将 CSRF token 添加到 Django POST 请求的 XMLhttpRequest

转载 作者:行者123 更新时间:2023-11-30 19:20:39 24 4
gpt4 key购买 nike

CSRF token 未添加到 XMLhttpRequest 的 header 中。

为了确保所有其他代码都能正常工作,我尝试对服务器使用 GET 请求并且一切正常。但是,当我将 CSRF token 添加到 header 时,代码在添加 header 时停止运行。

// [PROBLEM CODE]
// Initialize new request
const request = new XMLHttpRequest();
const currency = document.querySelector('#currency').value;

request.setRequestHeader({'csrfmiddlewaretoken': csrftoken}); // [<---HERE]
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); // [<---HERE]

request.open('POST', '/convert');


// [THIS WORKS]
// Initialize new request
const request = new XMLHttpRequest();
const currency = document.querySelector('#currency').value;
request.open('GET', '/convert');
request.send();

当我把这两行有问题的代码拿出来,setRequestHeader,发起POST请求。我收到的错误消息是“Forbidden (CSRF token missing or incorrect.):/convert”

最佳答案

您传递给 setRequestHeader 的不是一个对象,而是一个 header 和一个 value。请参阅文档 here .

来自 reading this ,我相信它应该是 'X-CSRFToken'

此外,在设置请求 header 之前,您需要将请求设置为打开。

如果您将其更新为以下内容,它应该可以工作。

request.open('POST', '/convert');
request.setRequestHeader("X-CSRFToken", csrftoken);
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
request.send();

关于javascript - 无法将 CSRF token 添加到 Django POST 请求的 XMLhttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57516816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com