防止Rails应用程序响应来自jQuery的意外AJAX请求

时间:2010-07-29 04:23:42

标签: ruby-on-rails ruby ajax jquery xmlhttprequest

我已经用很多jQuery ajax请求构建了一个相当复杂的Rails(2.3.8)应用程序。有一个偶然的错误,我很难复制,其中一个jQuery $ .ajax({..})请求将请求一个它不应该的页面(如破折号页面,从未使用ajax请求调用)。

确保绝对是疯狂的。发生了令人难以置信的奇怪和可怕的错误。

对于至少一个权宜之计解决方案(应用程序正在生产中),我如何设置一个前置过滤器,而不是检测任何未经请求的xhr / ajax请求(或给定控制器操作上的任何此类请求)并在它之前将其终止击中控制器?

1 个答案:

答案 0 :(得分:2)

在任何控制器中:

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