diff options
author | Lucas Mazza <lucastmazza@gmail.com> | 2014-07-02 18:48:04 -0300 |
---|---|---|
committer | Lucas Mazza <lucastmazza@gmail.com> | 2014-07-02 20:02:00 -0300 |
commit | b00b638b95dc513f4ba854ba3a96b7a8f344e4cc (patch) | |
tree | ab60799425fff87b3e74de6c6423816ca82614ce /actionpack/lib/action_controller | |
parent | a4104278b5cc5a7e7b15473c1ea74125f915f2db (diff) | |
download | rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.tar.gz rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.tar.bz2 rails-b00b638b95dc513f4ba854ba3a96b7a8f344e4cc.zip |
Change the JSON renderer to enforce the 'JS' Content Type
The controller can set the response format as 'JSON' before the renderer code be
evaluated, so we must replace it when necessary.
Fixes #15081
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/metal/renderers.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/renderers.rb b/actionpack/lib/action_controller/metal/renderers.rb index 46405cef55..ae55e6d7f5 100644 --- a/actionpack/lib/action_controller/metal/renderers.rb +++ b/actionpack/lib/action_controller/metal/renderers.rb @@ -112,7 +112,10 @@ module ActionController json = json.to_json(options) unless json.kind_of?(String) if options[:callback].present? - self.content_type ||= Mime::JS + if self.content_type.nil? || self.content_type == Mime::JSON + self.content_type = Mime::JS + end + "#{options[:callback]}(#{json})" else self.content_type ||= Mime::JSON |