当我尝试从我的 React 应用程序中向 django View 发出简单的发布请求时,我收到了 403。这是我的代码:

View .py

@csrf_protect
def test_view():
    if (request.method == 'POST'):
        return HttpResponse(request.body)

Login.js( react 组件)
import Cookies from 'js-cookie';

//React constructor {

  test_view() {
      const csrftoken = Cookies.get('csrftoken');
      const config = {
        headers: {'HTTP_X_CSRFTOKEN': csrftoken},
      }
      axios.post('/prototype/hello/', {firstName: 'Fred'}, config)
        .then(res => {console.log("Test res: " + res.data)});
  }
//}

网址.py
    url(r'^hello', views.test_view, name='test-view'),

'js-cookie' 库是否可能不起作用?我在任何地方都没有 {% csrf_token %},因为我没有使用 index.html 以外的 django 模板。相反,我有 @csrf_protect 装饰器。我认为这是我应该根据 docs 做的事情。

最佳答案

只需设置以下设置。不需要其他任何东西。

axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.xsrfHeaderName = 'X-CSRFToken';

关于python - 在 React 应用程序中使用 axios.post 到 Django 端点时出现 403 错误代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43106526/

10-12 16:58