ruby-on-rails - Axios:XSRF Cookie 未在生产中随请求一起发送
问题描述
我让 VueJS 前端与 Rails 后端通信。我可以成功地创建1个会话并接收要存储的 CSRF 令牌,但是当部署在 Heroku 上时 ,它从未在后续的 Axios 请求中发送2 。它在 localhost 上运行良好,并且前端和后端都托管在 herokuapp.com 上,因此 SameSite 应该不是问题。
Axios 设置为在请求中包含 XSRF 令牌:
const API_URL = process.env.VUE_APP_API_URL || "http://localhost:8080";
axios.defaults.baseURL = API_URL;
axios.defaults.headers.post["Content-Type"] = "application/json";
axios.defaults.xsrfCookieName = "CSRF-TOKEN";
axios.defaults.xsrfHeaderName = "X-CSRF-Token";
axios.defaults.withCredentials = true;
如何确保 Axios 将此 cookie 传递给我的 Rails 应用程序?下图:创建会话时返回的 cookie,然后未包含在以下请求中。
[ 1
解决方案
这最终成为 .herokuapp.com 在公共后缀列表中的问题。添加自定义域解决了这个问题。
https://devcenter.heroku.com/articles/cookies-and-herokuapp-com
推荐阅读
- java - 如何将 Spring Boot 添加到现有项目中?
- macos - 如何在颤动的 github 操作中包含 git 忽略的文件?
- html - 托管具有多个 html 文件的 github 页面服务器
- google-admin-sdk - 401:访问被拒绝。您无权阅读活动记录
- excel - 我可以使用 VBA 在 Excel 中选择图像并将其打印为 PDF
- c++ - 为什么调用简单构造函数后调用复制构造函数?
- data-warehouse - 用于数据仓库的 Greenplum 与 Citus
- bash - Codacy 分析器警告:在 POSIX sh 中,[[ ]] 未定义
- c - 在赋值中使用后缀/后缀运算符
- python - 在 DataFrame 中使用 apply 和 lambda 时,有没有办法应用条件?