在Django中通过AJAX发布参数时,”CSRF token missing or incorrect”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我尝试发布参数

 jQuery.ajax(
        {
            'type': 'POST',
            'url': url,
            'contentType': 'application/json',
            'data': "{content:'xxx'}",
            'dataType': 'json',
            'success': rateReviewResult 
        }
    );

但是,Django返回禁止403. CSRF验证失败。请求中止。我正在使用'django.middleware.csrf.CsrfViewMiddleware'

提问于
用户回答回答于

在数据中包含{{csrf_token}}值:

jQuery.ajax(
    {
        'type': 'POST',
        'url': url,
        'contentType': 'application/json',
        'data': {
            'content': 'xxx',
            'csrfmiddlewaretoken': '{{ csrf_token }}',
        },
        'dataType': 'json',
        'success': rateReviewResult 
    }
);
用户回答回答于

告诉你的view不要检查csrf标签。这可以通过使用装饰器@csrf_exempt完成,如下所示: from django.views.decorators.csrf import csrf_exempt @csrf_exempt def your_view_name(request): ...

扫码关注云+社区