Mark CORS responses as uncacheable
This commit is contained in:
parent
30f8e412bc
commit
d53bbe53f4
1 changed files with 16 additions and 1 deletions
|
@ -1,11 +1,26 @@
|
|||
require "rack/cors"
|
||||
|
||||
# Mark CORS responses as uncacheable as we don't want a browser to
|
||||
# try and reuse a response that had a different origin, even with
|
||||
# revalidation, as the origin check will fail.
|
||||
module OpenStreetMap
|
||||
class Cors < Rack::Cors
|
||||
def call(env)
|
||||
status, headers, body = super env
|
||||
if headers['Access-Control-Allow-Origin']
|
||||
headers['Cache-Control'] = 'no-cache'
|
||||
end
|
||||
[status, headers, body]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Allow any and all cross-origin requests to the API. Allow any origin, and
|
||||
# any headers. Non-browser requests do not have origin or header restrictions,
|
||||
# so browser-requests should be similarly permitted. (Though the API does not
|
||||
# require any custom headers, Ajax frameworks may automatically add headers
|
||||
# such as X-Requested-By to requests.)
|
||||
Rails.configuration.middleware.use Rack::Cors do
|
||||
Rails.configuration.middleware.use OpenStreetMap::Cors do
|
||||
allow do
|
||||
origins "*"
|
||||
resource "/oauth/*", :headers => :any, :methods => [:get, :post]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue