我将rails应用更新到Rails 4.1并开始获取ActionController :: InvalidCrossOriginRequest异常。我发现bing bots主动抓取我动态生成的javascript文件。
我认为rails引发此异常是正确的,因为javascript是直接调用的,但是我的日志已经填满了这个异常。
有没有办法避免机器人在不关闭csrf保护的情况下引发此异常?
我的控制器看起来像这样。
class ListsController < ApplicationController
before_filter :authenticate_user!
def add
@list = List.find(params[:id])
respond_to do |format|
format.js { render 'add' }
format.html { redirect_to list_path(@list) }
end
end
end
答案 0 :(得分:4)
要添加到J-H
的答案,并假设您需要CORS的帮助,您应该知道每个主机都使用CORS policy来确定谁可以(而不是)直接访问他们的服务器
您的错误主要是因为您的服务器的CORS策略仍然默认为“拒绝”每个直接的XHR访问。解决这个问题的方法是确定服务器上可用于外部资源的endpoints
实现此目的的最佳方法是使用J-H
建议的rack-cors
gem:)
答案 1 :(得分:2)
你可能想尝试像Rack-Cors gem这样的东西:https://github.com/cyu/rack-cors