Method: Rack::Cors::Resource#process_preflight

Defined in:
lib/rack/cors/resource.rb

#process_preflight(env, result) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/rack/cors/resource.rb', line 47

def process_preflight(env, result)
  headers = {}

  request_method = env[Rack::Cors::HTTP_ACCESS_CONTROL_REQUEST_METHOD]
  result.miss(Result::MISS_NO_METHOD) && (return headers) if request_method.nil?
  result.miss(Result::MISS_DENY_METHOD) && (return headers) unless methods.include?(request_method.downcase)

  request_headers = env[Rack::Cors::HTTP_ACCESS_CONTROL_REQUEST_HEADERS]
  result.miss(Result::MISS_DENY_HEADER) && (return headers) if request_headers && !allow_headers?(request_headers)

  result.hit = true
  headers.merge(to_preflight_headers(env))
end