Ruby on rails 如何让Rails在不发送';内容类型:application/json';头球?
发送标题“Content-type:application/json”时,Rails会在多个级别上改变行为:Ruby on rails 如何让Rails在不发送';内容类型:application/json';头球?,ruby-on-rails,ruby-on-rails-3,json,rest,content-negotiation,Ruby On Rails,Ruby On Rails 3,Json,Rest,Content Negotiation,发送标题“Content-type:application/json”时,Rails会在多个级别上改变行为: 提交的帖子正文被解析为json,而不仅仅是一个字符串参数 config/initializers/wrap_parameters.rb中的wrap_parameters:format=>[:json]在解析所述参数时使用(因此您可以发送带或不带根元素的json) 如果我不能信任(外部)客户机传递正确的头怎么办?换句话说,我想让我的应用程序表现得好像客户端总是传递“Content-ty
- 提交的帖子正文被解析为json,而不仅仅是一个字符串参数
- config/initializers/wrap_parameters.rb中的wrap_parameters:format=>[:json]在解析所述参数时使用(因此您可以发送带或不带根元素的json)
如果我不能信任(外部)客户机传递正确的头怎么办?换句话说,我想让我的应用程序表现得好像客户端总是传递“Content-type:application/json”头一样,即使客户端实际上没有传递?您可以使用
request.format = :json
我使用
class ExampleController < ApplicationController
def always_accept_json
request.format = :json
respond_to do |format|
format.json { raise "HEY" }
format.html
end
end
end
class ExampleController
您可以在任何ActionController中的任何位置执行此操作,即,如果您希望在顶层使所有请求在应用程序中显示为内容\u typeapplication/json
只需将其设置为application\u controller.rb
上的过滤器,即可设置request.format