Report abuse

diff --git a/actionpack/lib/action_controller/mime_types.rb b/actionpack/lib/action_controller/mime_types.rb
index 01a266d..2d7fba1 100644
--- a/actionpack/lib/action_controller/mime_types.rb
+++ b/actionpack/lib/action_controller/mime_types.rb
@@ -17,4 +17,5 @@ Mime::Type.register "multipart/form-data", :multipart_form
 Mime::Type.register "application/x-www-form-urlencoded", :url_encoded_form

 # http://www.ietf.org/rfc/rfc4627.txt
-Mime::Type.register "application/json", :json, %w( text/x-json )
\ No newline at end of file
+# http://www.json.org/JSONRequest.html
+Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest )
\ No newline at end of file
diff --git a/actionpack/test/controller/request_test.rb b/actionpack/test/controller/request_test.rb
index 2bd489b..5d677ca 100644
--- a/actionpack/test/controller/request_test.rb
+++ b/actionpack/test/controller/request_test.rb
@@ -909,15 +909,21 @@ class LegacyXmlParamsParsingTest < XmlParamsParsingTest
 end

 class JsonParamsParsingTest < Test::Unit::TestCase
-  def test_hash_params
-    person = parse_body({:person => {:name => "David"}}.to_json)[:person]
+  def test_hash_params_for_application_json
+    person = parse_body({:person => {:name => "David"}}.to_json,'application/json')[:person]
+    assert_kind_of Hash, person
+    assert_equal 'David', person['name']
+  end
+
+  def test_hash_params_for_application_jsonrequest
+    person = parse_body({:person => {:name => "David"}}.to_json,'application/jsonrequest')[:person]
     assert_kind_of Hash, person
     assert_equal 'David', person['name']
   end

   private
-    def parse_body(body)
-      env = { 'CONTENT_TYPE'   => 'application/json',
+    def parse_body(body, content_type)
+      env = { 'CONTENT_TYPE'   => content_type,
               'CONTENT_LENGTH' => body.size.to_s }
       cgi = ActionController::Integration::Session::StubCGI.new(env, body)
       ActionController::CgiRequest.new(cgi).request_parameters