У меня была аналогичная проблема, когда я пытался отображать содержимое на нашем собственном сайте в iframe (в качестве диалогового окна в стиле лайтбокса с Colorbox ) и где у нас был серверный " X-Frame-Options SAMEORIGIN "на исходном сервере, не позволяя ему загружаться на нашем тестовом сервере.
Это нигде не документируется, но если вы можете редактировать страницы, которые вы пытаетесь iframe (например, это ваши собственные страницы), просто отправляя другой заголовок X-Frame-Options с любой строкой, вообще отключает команды SAMEORIGIN или DENY.
, например. для PHP, помещая
в верхней части страницы, сделайте браузеры объединенными двумя, что приведет к заголовку
X-Frame-Options SAMEORIGIN, GOFORIT
... и позволит вам загрузите страницу в iframe. Это, похоже, работает, когда начальная команда SAMEORIGIN была установлена на уровне сервера, и вы хотели бы переопределить ее в каждом отдельном случае.
Все самое лучшее!
Дох, забыл об этом. Оказывается, у меня была дублирующая строка resources :people в верхней части файла routes. Rails бил по ней в первую очередь. Мне кажется, там действительно должна быть проверка на дублирование определения маршрута.
Какую версию Rails вы используете? Попробуйте создать тестовое приложение только с кодом, который вы здесь предоставили, и посмотрите, работает ли оно. Вероятно, что-то еще вызывает конфликт, о чем вы не упомянули.
Использование вашего кода на Rails 3.0.0beta4 дало желаемые результаты:
Started GET "/people/search.json?term=boo" for 192.168.1.2 at 2010-06-23 03:39:26 -0400
Processing by PeopleController#search as JSON
Parameters: {"term"=>"boo"}
Completed in 49ms
Вот мой файл маршрутов:
resources :people do
collection do
get :search
end
end
У меня есть people_controller.rb с определенным методом поиска.