【问题标题】:Axios: XSRF Cookie not being sent with request in productionAxios:XSRF Coo​​kie 未在生产中随请求一起发送
【发布时间】:2020-11-08 01:18:29
【问题描述】:

我让 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

【问题讨论】:

    标签: ruby-on-rails http cookies axios


    【解决方案1】:

    这最终导致 .herokuapp.com 出现在公共后缀列表中。添加自定义域解决了这个问题。

    https://devcenter.heroku.com/articles/cookies-and-herokuapp-com

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2020-04-03
      • 2020-08-22
      • 2012-11-28
      • 2016-03-16
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      相关资源
      最近更新 更多