aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorLucas Mazza <lucastmazza@gmail.com>2014-07-02 18:48:04 -0300
committerLucas Mazza <lucastmazza@gmail.com>2014-07-02 20:02:00 -0300
commitb00b638b95dc513f4ba854ba3a96b7a8f344e4cc (patch)
treeab60799425fff87b3e74de6c6423816ca82614ce /actionpack/lib/action_controller
parenta4104278b5cc5a7e7b15473c1ea74125f915f2db (diff)
downloadrails-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.rb5
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