我在我的应用程序中遇到了this错误,其中移动safari中的ajax在收到Content-Disposition:attachment
的响应后停止工作
我想继续发送处置:附加到桌面浏览器和非iOS移动设备,同时切换到处置:在iOS上内联。我需要在几个不同的控制器操作中执行此操作。
除了将这些类型的块放在一起之外,还有一种优雅的方法吗?
if request.env['HTTP_USER_AGENT'] =~ /iPad/
disposition = :inline
else
disposition = :attachment
end
答案 0 :(得分:2)
只需在应用程序控制器中创建一个before_filter
即可一次性设置它!
class ApplicationController < ActionController::Base
before_filter :set_content_disposition
def set_content_disposition
if request.env['HTTP_USER_AGENT'] =~ /iPad/
response.headers['Content-Disposition'] = 'inline'
elsif params[:format].in?(['pdf', 'other_format', 'other_format2'])
response.headers['Content-Disposition'] = 'attachment'
end
end
#Rest of application controller code ...
end