aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-06-21 07:02:30 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-06-21 07:02:30 +0000
commit1e0d9a642ffe5db23086301d3eeed63f4b7bca68 (patch)
tree7eb7cfa3b2f3d9fa7c41666007e30eea86fbed22 /actionpack/lib/action_controller
parent6c8d354b8d9ca2fa62d0e062fa6346673dd15dbf (diff)
downloadrails-1e0d9a642ffe5db23086301d3eeed63f4b7bca68.tar.gz
rails-1e0d9a642ffe5db23086301d3eeed63f4b7bca68.tar.bz2
rails-1e0d9a642ffe5db23086301d3eeed63f4b7bca68.zip
Added :xhr => true/false option to verify so you can ensure that a request is coming from an Ajax call or not #1464 [Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1463 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
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?