Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запретить приложению Rails отвечать на непреднамеренный запрос AJAX от jQuery

Автор вопроса: Michael WaxmanОтветов: 1

Я создал довольно сложное приложение Rails (2.3.8) с большим количеством запросов jQuery ajax. Иногда возникает ошибка, которую мне трудно воспроизвести, когда запрос jQuery $.ajax({..}) будет запрашивать страницу, которую он не должен (например, страница с тире, которая никогда не вызывается с запросом ajax). .

То, что гарантирует, - это абсолютное безумие. Случаются невероятно странные и ужасные ошибки.

По крайней мере, для временного решения (приложение находится в производстве), как я могу настроить предварительный фильтр, который обнаружит любой незапрашиваемый запрос xhr/ajax (или ЛЮБОЙ такой запрос на заданные действия контроллера) и убьет его до того, как он попадет в контроллер ?

rubyruby-on-railsxmlhttprequestjqueryajax

Ответы

Ответ 1 · рейтинг 2 · Leventix

В любом контроллере:

before_filter :stop_ajax, :only => [:dashboard]

application_controller.rb:

def stop_ajax
  if request.xhr?
    render :file => "#{Rails.root}/public/404.html", :status => 404
  end
end

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы