当我尝试从我的 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/