Rails 5.1 使用 Webpack:访问 CSRF 令牌
Rails 5.1 with Webpack: accessing the CSRF token
我正在尝试 Rails 5.1 中对 Webpack 的新支持来管理我的 Vue 应用程序。我目前不知道如何轻松访问 CSRF 令牌。 previous answers to this question 的建议似乎属于以下类别:
- 使用 ERB(即
my-app.js.erb
)将 form_authenticity_token
Rails 助手直接嵌入到 JavaScript 文件中
- 使用 jQuery 从页眉中获取
meta
标记,其中嵌入了 CSRF 令牌。
在我的例子中,第一个根本不起作用,大概是因为将 ERB 文件处理成 JS 文件是资产管道的一部分,但 Webpack 现在正在处理该构建任务。第二种方法可行,但目前我没有在我的 package.json
中包含 jQuery 并且仅仅为了这个单一目的而包含它似乎有点过分。
我确定我可以编写一些 JS 代码来定位 DOM 中的 meta
标记并获取 CSRF 令牌,但我只是想知道是否有更简洁的方法我错过了什么?
用 Vanilla JS 做:
document.querySelectorAll('meta[name="csrf-token"]')
我正在尝试 Rails 5.1 中对 Webpack 的新支持来管理我的 Vue 应用程序。我目前不知道如何轻松访问 CSRF 令牌。 previous answers to this question 的建议似乎属于以下类别:
- 使用 ERB(即
my-app.js.erb
)将form_authenticity_token
Rails 助手直接嵌入到 JavaScript 文件中 - 使用 jQuery 从页眉中获取
meta
标记,其中嵌入了 CSRF 令牌。
在我的例子中,第一个根本不起作用,大概是因为将 ERB 文件处理成 JS 文件是资产管道的一部分,但 Webpack 现在正在处理该构建任务。第二种方法可行,但目前我没有在我的 package.json
中包含 jQuery 并且仅仅为了这个单一目的而包含它似乎有点过分。
我确定我可以编写一些 JS 代码来定位 DOM 中的 meta
标记并获取 CSRF 令牌,但我只是想知道是否有更简洁的方法我错过了什么?
用 Vanilla JS 做:
document.querySelectorAll('meta[name="csrf-token"]')