diff --git a/lib/active_scaffold/actions/core.rb b/lib/active_scaffold/actions/core.rb
index <HASH>..<HASH> 100644
--- a/lib/active_scaffold/actions/core.rb
+++ b/lib/active_scaffold/actions/core.rb
@@ -2,6 +2,7 @@ module ActiveScaffold::Actions
   module Core
     def self.included(base)
       base.class_eval do
+        before_action :set_vary_accept_header
         before_action :handle_user_settings
         before_action :check_input_device
         before_action :register_constraints_with_action_columns, :unless => :nested?
@@ -292,6 +293,10 @@ module ActiveScaffold::Actions
       session.delete(session_index) if session[session_index].blank?
     end
 
+    def set_vary_accept_header
+      response.headers['Vary'] = 'Accept'
+    end
+
     # at some point we need to pass the session and params into config. we'll just take care of that before any particular action occurs by passing those hashes off to the UserSettings class of each action.
     def handle_user_settings
       storage = active_scaffold_config.store_user_settings ? active_scaffold_session_storage : {}
avoid browser mixes html and xhr cache for listing requests, using vary header