python - Firefox 没有收到 django csrf_token

标签 python django firefox django-csrf

我在 django 中提交一个 ajax 表单并使用

xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

获取csrf_token。该表格在 chrome 中运行良好。但是在 firefox 中,csrf_token 的值为 null 并且它给出 403 forbidden 错误。当我在控制台中检查 cookie 时,我没有在控制台中收到 csrf_token。为什么 django 不将 csrf_token 提供给 firefox 浏览器?

最佳答案

将以下装饰器添加到生成包含表单的页面的 View

@ensure_csrf_cookie

来自 Django 文档 -

Page uses AJAX without any HTML form

A page makes a POST request via AJAX, and the page does not have an HTML form with a csrf_token that would cause the required CSRF cookie to be sent.

Solution: use ensure_csrf_cookie() on the view that sends the page.

关于python - Firefox 没有收到 django csrf_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105645/

相关文章:

javascript - Firefox 重新加载页面循环调试提示?

python - 使用 pip 安装 TextBlob 时遇到问题

python - 使用 BeautifulSoup 提取 HTML 注释之间的文本

python - 如何将 Django REST 框架与具有外键默认值的模型一起使用?

Django 条件注解

javascript - Django 管理员帮助工具提示中的文本选择字段

jquery - 陪伴: CSS3 Animations Only Working on Load

javascript - 错误 : "Access to restricted URI denied"

python - 给定索引约束的最大和子数组

python - “模块”对象没有属性 'main_page'