diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-21 07:02:30 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-06-21 07:02:30 +0000 |
commit | 1e0d9a642ffe5db23086301d3eeed63f4b7bca68 (patch) | |
tree | 7eb7cfa3b2f3d9fa7c41666007e30eea86fbed22 /actionpack/lib | |
parent | 6c8d354b8d9ca2fa62d0e062fa6346673dd15dbf (diff) | |
download | rails-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')
-rwxr-xr-x | actionpack/lib/action_controller/request.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_controller/verification.rb | 4 |
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? |