Как избежать исключения ActionController::InvalidCrossOriginRequest?

я обновил приложение rails до Rails 4.1 и начал получать исключение ActionController::InvalidCrossOriginRequest. Я обнаружил, что боты Bing активно сканируют мой динамически сгенерированный файл 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

2 ответов


добавить J-Hответ, и предполагая, что вам нужна помощь с CORS, вы должны знать, что каждый хозяин использует политика CORS чтобы определить, кто может (и не может) получить доступ к своему серверу напрямую

ваша ошибка в основном потому, что политика CORS вашего сервера по-прежнему по умолчанию "отрицает" каждый прямой доступ XHR. Способ обойти это-определить конечные точки на вашем сервере, который будет доступен для внешних ресурсы

это происходит, лучший способ сделать это-использовать rack-cors gem, как это было рекомендовано J-H :)


вы можете попробовать что-то вроде драгоценного камня Rack-Cors:https://github.com/cyu/rack-cors