Ответ 1
Добавьте это в контроллер, который выполняет рендеринг фрагмента страницы
class FooController < ApplicationController
protect_from_forgery except: :index
Где index
- название действия, которое вы хотите пропустить эту защиту
Политика перекрестного происхождения
Ошибка, которую вы получали, связана с тем, что называется политикой Cross-Origin. Это стандарт, присутствующий в каждом браузере, который не позволяет странице запускать скрипты из других доменов. Способ обойти это - добавить заголовок к HTTP-запросу, позволяющий вашему контенту запускаться в других доменах.
В Википедии есть объяснение:
Второй метод ослабления политики одного и того же происхождения стандартизован под названием Cross-Origin Resource Sharing. Эта стандарт расширяет HTTP с новым заголовком запроса Origin и новым Access-Control-Allow-Origin. Он позволяет серверам использовать заголовок для явного списка истоков, которые могут запрашивать файл или использовать подстановочный знак и разрешить загрузку файла любым сайтом. Браузеры такие поскольку Firefox 3.5, Safari 4 и Internet Explorer 10 используют этот заголовок для разрешить HTTP-запросы с кросс-началом с XMLHttpRequest, которые в противном случае они были запрещены политикой того же происхождения.