【问题标题】:axios post to django failing due to csrf由于 csrf,axios 发布到 django 失败
【发布时间】:2018-11-11 18:08:11
【问题描述】:

我正在使用 React + Django 并尝试使用 axios 发出发布请求,但由于 csrf 失败。我已经尝试了互联网上发布的所有类似问题的答案,但由于某些奇怪的原因,它们都没有工作。

//Django View
def createUser(request):
    username = request.POST['username']
    email = request.POST['email']
    resp = {
      'username' : username,
      'email' : email
    }
    return JsonResponse(resp)



//Axios Post
 axios.post('http://localhost:8000/api/createUser/',{
       username : 'xyz',
       email : 'xyz@gmail.com'
    },
    {
       headers: {
         Content-Type': 'application/json',
       }
    });

尝试添加默认值

axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
axios.defaults.xsrfCookieName = "csrftoken";

但仍然让 csrf 失败。我知道我可以在视图上执行 @csrf_exempt 但我想保留 csrf 检查。

【问题讨论】:

标签: django reactjs axios


【解决方案1】:

除了 X-CSRFToken 标头外,还使用 ​​withCredentials: true 在 axios 请求中包含 cookie

My original answer

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2015-11-29
    • 1970-01-01
    • 2013-08-14
    • 2012-09-08
    相关资源
    最近更新 更多