由于以下原因,Chrome中的发布和删除方法失败:“ ActionController :: InvalidAuthenticityToken”

时间:2019-01-27 02:19:31

标签: ruby-on-rails ruby csrf

我正在nginx服务器上以开发模式运行带有Rails 5.2的应用程序。一切都在本地运行,但是将其推送到远程服务器并启动Rails服务器之后,无法创建,编辑或删除记录。我收到一条Rails错误,内容为:“ ActionController :: InvalidAuthenticityToken”

奇怪的是,这仅在我使用Chrome浏览器时发生。在Firefox或Edge中,一切正常。这些是与删除请求一起发送的参数:

{"utf8"=>"✓",
 "authenticity_token"=>"blahblahblah",
 "service_line_item"=>{"title"=>"a", "body"=>""},
 "commit"=>"create",
 "service_id"=>"2",
 "service_type"=>"1"}

如您所见,很明显有一个真实性令牌。当我将其与HTML中加载的令牌进行比较时,它就会匹配。我所有的表单都使用form_for助手。

这是我服务器上的日志:

Started POST "/zoom/services/new-line-item?service_id=2&service_type=2" for 127.0.0.1 at 2019-01-25 22:55:42 +0000
Processing by ServicesController#new_line_item as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"blahblahblah", "service_line_item"=>{"title"=>"a", "body"=>""}, "commit"=>"create", "service_id"=>"2", "service_type"=>"1"}
HTTP Origin header (https://dev.mysite.com) didn't match request.base_url (http://localhost:3000)
Completed 422 Unprocessable Entity in 0ms (ActiveRecord: 0.0ms)

我已经尝试了所有显而易见的事情,例如重新加载服务器,删除cookie和硬刷新页面,但是没有任何效果。任何帮助将不胜感激。

0 个答案:

没有答案