Worked around a Safari bug where it wouldn't pass headers through if the response was zero length by having render :nothing return ' ' instead of ''

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1818 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson
2005-07-12 19:31:48 +00:00
parent 847f738cfd
commit cb0f8fda96

View File

@@ -559,7 +559,7 @@ module ActionController #:nodoc:
# === Rendering nothing
#
# Rendering nothing is often convenient in combination with Ajax calls that perform their effect client-side or
# when you just want to communicate a status code.
# when you just want to communicate a status code. Due to a bug in Safari, nothing actually means a single space.
#
# # Renders an empty response with status code 200
# render :nothing => true
@@ -621,7 +621,8 @@ module ActionController #:nodoc:
) }))
elsif options[:nothing]
render(options.merge({ :text => "" }))
# Safari doesn't pass the headers of the return if the response is zero length
render(options.merge({ :text => " " }))
else
render(options.merge({ :action => action_name }))