django - csrf.py _reject:禁止(CSRF 令牌丢失或不正确。)
问题描述
我收到 403 禁止错误并且WARNING csrf.py _reject: Forbidden (CSRF token missing or incorrect.)
是 django 日志。
这是我的html,jquery-
function req() {
var server_id = $( "#server option:selected" ).val();
$.post("/sp/add_req", JSON.stringify({ cir: {{ cir }}, server_id: server_id, csrfmiddlewaretoken: {{ csrf_token }}}), function (data) {
console.log(data)
});
}
和views.py-
def add_request(request):
....
return JsonResponse({'success': True})
我在设置中有'django.middleware.csrf.CsrfViewMiddleware'。出了什么问题以及如何解决这个问题?
解决方案
{% csrf_token %}
将呈现为<input type="hidden" name="csrfmiddlewaretoken" value="xxxxxx">
. 因此,您可以单独渲染它,然后使用 javascript 创建 JSON 对象。
var csrfToken = $('[name="csrfmiddlewaretoken"]').val();
var data = {'csrfmiddlewaretoken': csrfToken);
然后在您的帖子中发送数据。我更喜欢使用Fetch API来发帖。
推荐阅读
- swift - 闭包和静态函数
- javascript - 确定为模态操作而单击的按钮
- dart - 如何在 Flutter 中设置 AlertDialog Actions 的样式
- php - 类 App\Policies\StatusPolicy 不存在
- c++ - 扣除指南中的参考值和值之间的差异
- python - VTK 无法创建自己的地图 vtk.vtkDataSetMapper - Python
- r - R:计算已经开始但未结束的事件数 - 如果在日期时间范围内,则计数
- c - 如何使用 head 代替结构节点?
- android - SDK 版本 28 中 CardView 和 RecyclerView 的依赖项
- javascript - WordPress 中的 PHP:JavaScript 中的 Echo 短代码