新手问题 为什么只有在 Chrome 上会出现 ActionController::InvalidAuthenticityToken 这个错误

yangfanlalala · 2017年11月05日 · 最后由 yangfanlalala 回复于 2017年11月11日 · 2035 次阅读

如题,我在开发中,使用 Chrome 并使用 POST 方法提交的时候会出现“ActionController::InvalidAuthenticityToken”这样的错误,但是,同样的页,在 firefox 和 IE 上进行 POST 提交,所有的提交都能成功执行。这是什么原因引起的? 我现在使用的 Rails 版本是 5.1.4,希望可以得到回复。谢。

这几天我也遇到了类似的问题,这几天我调试 actioncable 发现了,我在 firefox 和 ie 提交都没有这个问题,在 chrome 上就有问题,最后我是修改 config/initializers/request_forgery_protection.rb 文件 Rails.application.config.action_controller.forgery_protection_origin_check = false 才可以

head 里加上 <%= csrf_meta_tags %>

form 里把 authenticity_token:$("meta[name='csrf-token']").attr("content") 传过去应该就好了

xiaoxiao 回复

会是同源策略的问题?好吧,我抓一下 chrome 的包和 firefox 比较一下吧。谢谢。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号