Javascript 由于浏览器发送的格式不正确,Rails中出现MissingTemplate错误
我遇到了这样一个问题:偶尔,浏览器在发出请求时未能发送正确的格式列表,因此引发MissingTemplate错误。我有一些只对JS:做出响应的操作,例如: blah_controller.rb:Javascript 由于浏览器发送的格式不正确,Rails中出现MissingTemplate错误,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我遇到了这样一个问题:偶尔,浏览器在发出请求时未能发送正确的格式列表,因此引发MissingTemplate错误。我有一些只对JS:做出响应的操作,例如: blah_controller.rb: def BlahController < ActionController::Base respond_to :js, :only => :my_action def my_action # stuff end end 绝大多数情况下,jQuery发出ajax请求,并
def BlahController < ActionController::Base
respond_to :js, :only => :my_action
def my_action
# stuff
end
end
绝大多数情况下,jQuery发出ajax请求,并执行生成的JavaScript—调用doSomething。但偶尔,浏览器会发送不包含JS的格式列表,因此会引发ActionView::MissingTemplate错误:
ActionView::MissingTemplate: Missing template blah/my_action with {:formats=>[:html], :handlers=>[:rjs, :rhtml, :erb, :rxml, :builder], :locale=>[:en, :en]} in view paths ...
这种情况发生在不同的浏览器上,因此我无法将其归因于某个模糊的浏览器,但我无法复制它。如果您无法复制该问题,并且它似乎只发生在您的生产环境中,则可能有一些机器人错误地请求您的页面。您在浏览器中看到的差异可能来自欺骗用户代理 我会根据蜜罐项目之类的东西检查失败请求的IP
也许您需要发布发送AJAX请求的源代码。但我还没能复制它。你是什么意思?一个常规的jQuery请求使请求$.get'…'。我关于复制它的意思是,当我以交互方式测试它时,我不能让它发生;我只在生产错误日志中看到它。
ActionView::MissingTemplate: Missing template blah/my_action with {:formats=>[:html], :handlers=>[:rjs, :rhtml, :erb, :rxml, :builder], :locale=>[:en, :en]} in view paths ...