尝试发送删除请求时,我可能会收到“Forbidden (CSRF cookie not set.)”错误的一些原因是啥?

Posted

技术标签:

【中文标题】尝试发送删除请求时,我可能会收到“Forbidden (CSRF cookie not set.)”错误的一些原因是啥?【英文标题】:What are some reasons I could be getting a "Forbidden (CSRF cookie not set.)" error when trying to send a delete request?尝试发送删除请求时,我可能会收到“Forbidden (CSRF cookie not set.)”错误的一些原因是什么? 【发布时间】:2021-05-28 05:00:35 【问题描述】:

这真的让我很困惑,因为我知道我在标题中正确设置了 csrftoken。当我尝试在 Postman 上发送删除请求时,我得到了同样的错误。我一直在寻找解决方案几个小时,似乎找不到任何好的东西!你知道可能会发生什么吗?

这是一些相关的前端代码

var csrftoken = this.getCookie('csrftoken');
axios.defaults.headers.delete['X-CSRFToken'] = csrftoken
axios.defaults.headers.delete['X-Requested-With'] = 'XMLHttpRequest'
axios
  .delete(`http://localhost:8000/api/todos/$item.id`)
  .then(res => this.refreshList());

如果您需要更多信息,请告诉我。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我发现了问题。我的删除 URL 模式末尾有一个斜杠,正如您在此处看到的,在 axios 请求中的 ID 后面没有斜杠。编码员的经典错误。我讨厌这样的小虫子,不是吗?既然它已经消失了,仍然忍不住微笑。我想你只有通过经验才能学会检查这样的小事。这就是一个年轻的网络开发者的旅程。

【讨论】:

以上是关于尝试发送删除请求时,我可能会收到“Forbidden (CSRF cookie not set.)”错误的一些原因是啥?的主要内容,如果未能解决你的问题,请参考以下文章

当我发送 POST 请求时,我在 AXON SAGA 实施中收到 404 错误。可能是啥原因? [关闭]

当应用收到通知时,IOS 向 HTTP 服务器发送请求

阿帕奇删除请求

NSURLErrorDomain Code=-1202 使用同步请求时

当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?

未收到 Facebook 请求