繁体   English   中英

如何在 Rack 中间件中确定请求类型

[英]How to determine the request type in Rack middleware

我有以下机架中间件来检测旧版本的 Internet Explorer:

require 'user_agent'

module Rack
  class IERedirect

    def initialize(app, url)
      @app = app
      @redirect_url = url
    end

    def call(env)
      request = Rack::Request.new(env)
      useragent = UserAgent.new(env["HTTP_USER_AGENT"].to_s)
      path = env["PATH_INFO"]
      if (useragent.name == :ie && (useragent.version.to_i < 10))
        [ 302, {'Location'=> "#{@redirect_url}" }, [] ]
      else
        @app.call(env)
      end
    end
  end
end

我想要做的是向 if 语句添加另一个条件,即允许所有 POST 请求。 这在中间件中可能吗?

Rack::Request 对象中有一个方法: request.post? 还有.get? .patch? .put? , 等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM