Подтвердить что ты не робот

Недопустимый запрос на перекрестный поиск после обновления до Rails 4.1

В какой-то момент после обновления с Rails 3.2 до Rails 4.1 я начал получать следующие ошибки:

ActionController:: InvalidCrossOriginRequest: предупреждение о безопасности: встроенный тег на другом сайте требует защищенного JavaScript. Если вы знаете, что делаете, продолжайте и отключите защиту подделок в этом действии, чтобы разрешить JavaScript с перекрестным кодом

В основном они поступают из браузеров Internet Explorer 6 или 8 в Windows XP и никогда не сопровождаются информацией о пользователе, даже если они получают доступ к действию контроллера, который отображается только для пользователей, входящих в систему.

Как исправить эту проблему или решить ее?

(См. также связанную проблему перед обновлением: Почему Rails не удается получить доступ к сеансу в запросе Ajax из Internet Explorer?)

4b9b3361

Ответ 1

В соответствии с "Защита CSRF от удаленных тегов" из направляющих направляющих:

В случае тестов, когда вы также делаете клиент, измените с:

get: index, format:: js

To:

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