【发布时间】:2021-01-18 15:13:56
【问题描述】:
我正在使用 axios 从 React 前端调用 Django 后端 api。
对于登录 api 的 api,我在逻辑中使用 Django Knox 包。
React.js - 我正在调用 axios.request(method, url, data) 并且 api 调用工作正常。
当我转到Developer tools>Network 时,我可以看到Referer 标头在请求标头中设置为 React.js 网站,而没有其他与 csrf 相关的标头。在响应标头中,我可以看到两个 set-cookie 标头,csrftoken 和 sessionid.
React Native - 我调用 api 的方式相同,但 api 返回错误 csrf failed referer checking failed - no referer 。当我检查response.config 时,Referer 标头没有像 React.js 那样设置
卷曲 - 工作正常
httpie - 工作正常
我怎样才能摆脱这个错误。
注 1 - 我的 Django 后端基于 api 令牌逻辑,而不是 csrf。
注 2 - React.js 和 Django 托管在不同的域上。我在处于调试模式的 React Native 中遇到错误。
更新 1 - 在 Django settings.py 中禁用 CSRF 中间件后,现在我只得到一个 setCookie 标头(不再获得 csrftoken),但同样的错误仍然存在。
【问题讨论】:
标签: reactjs django react-native axios django-csrf