aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller')
-rwxr-xr-xactionpack/lib/action_controller/request.rb2
-rw-r--r--actionpack/lib/action_controller/verification.rb4
2 files changed, 4 insertions, 2 deletions
diff --git a/actionpack/lib/action_controller/request.rb b/actionpack/lib/action_controller/request.rb
index 73247d510a..5b4d337f47 100755
--- a/actionpack/lib/action_controller/request.rb
+++ b/actionpack/lib/action_controller/request.rb
@@ -65,7 +65,7 @@ module ActionController
# "XMLHttpRequest". (The Prototype Javascript library sends this header with
# every Ajax request.)
def xml_http_request?
- env['HTTP_X_REQUESTED_WITH'] =~ /XMLHttpRequest/i
+ !((env['HTTP_X_REQUESTED_WITH'] || "") =~ /XMLHttpRequest/i).nil?
end
alias xhr? :xml_http_request?
diff --git a/actionpack/lib/action_controller/verification.rb b/actionpack/lib/action_controller/verification.rb
index ec3c5fe26c..78918f800c 100644
--- a/actionpack/lib/action_controller/verification.rb
+++ b/actionpack/lib/action_controller/verification.rb
@@ -76,7 +76,9 @@ module ActionController #:nodoc:
prereqs_invalid ||=
[*options[:method]].all? { |v| @request.method != v.to_sym }
end
-
+
+ prereqs_invalid ||= (request.xhr? != options[:xhr]) unless options[:xhr].nil?
+
if prereqs_invalid
flash.update(options[:add_flash]) if options[:add_flash]
unless performed?