升级到Rails 4.1后无效的跨源请求

时间:2014-05-28 02:40:14

标签: ruby-on-rails forms internet-explorer ruby-on-rails-4 antiforgerytoken

从Rails 3.2升级到Rails 4.1后,我开始收到以下错误:

  

ActionController :: InvalidCrossOriginRequest:安全警告:另一个站点上的嵌入式标记请求受保护的JavaScript。如果您知道自己在做什么,请继续并禁用此操作上的伪造保护以允许跨源JavaScript

它们主要来自Windows XP上的Internet Explorer 6或8浏览器,并且永远不会附带用户信息,即使他们正在访问仅向登录用户显示的控制器操作。

如何解决此问题或解决此问题?

(另请参阅升级前的相关问题:Why does Rails Fail to access the Session in an Ajax request from Internet Explorer?

1 个答案:

答案 0 :(得分:20)

根据"远程标签的CSRF保护"来自导轨指南:

如果是测试,您也在做客户端,请改为:

  

get:index,format :: js

要:

  

xhr:get,:index,format :: js

http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#csrf-protection-from-remote-script-tags

如果您想要使此路线跳过csrf检查,白色会使用以下内容列出路线:

protect_from_forgery :except => :create