ruby-on-rails-3 – Rails 3中间件修改请求标头
发布时间:2020-12-16 19:35:49 所属栏目:百科 来源:网络整理
导读:我的设置:Rails 3.0.9,Ruby 1.9.2 我正在处理我的第一个中间件应用程序,似乎所有的例子都处理修改响应.我需要特别检查和修改请求标题,删除一些引起Rack 1.2.3中的错误的违规标题.这是典型的hello world Rack应用程序. my_middleware.rbclass MyMiddleware d
我的设置:Rails 3.0.9,Ruby 1.9.2
我正在处理我的第一个中间件应用程序,似乎所有的例子都处理修改响应.我需要特别检查和修改请求标题,删除一些引起Rack 1.2.3中的错误的违规标题.这是典型的hello world Rack应用程序. my_middleware.rb class MyMiddleware def initialize(app) @app = app end def call(env) @status,@headers,@response = @app.call(env) [@status,@response] end end 有人有一个例子来处理请求人员,并在Rack掌握之前拦截它们吗?我需要修改请求头,然后才能获取到Rack进行解析.我有这个设置,认为把它放在机架之前可能会做这个伎俩,但我不知道执行顺序是否以这种方式执行. application.rb config.middleware.insert_before Rack::Lock,"MyMiddleware" 解决方法
在你的调用方法中,你应该可以修改env,这就是机架环境.机架将HTTP_添加到每个标题,因此Accept标头将通过env [‘HTTP_ACCEPT’]访问.
所以如果你需要删除某些标题,你应该能够像env.delete(‘HTTP_ACCEPT’)这样做.那么当你做了@ app.call(env),它会使用你修改的env. 有关env对象的更多信息,请参阅the Rack documentation(请参阅“环境”). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |