我已经用很多jQuery ajax请求构建了一个相当复杂的Rails(2.3.8)应用程序。有一个偶然的错误,我很难复制,其中一个jQuery $ .ajax({..})请求将请求一个它不应该的页面(如破折号页面,从未使用ajax请求调用)。
确保绝对是疯狂的。发生了令人难以置信的奇怪和可怕的错误。
对于至少一个权宜之计解决方案(应用程序正在生产中),我如何设置一个前置过滤器,而不是检测任何未经请求的xhr / ajax请求(或给定控制器操作上的任何此类请求)并在它之前将其终止击中控制器?
答案 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