Skip to content

Instantly share code, notes, and snippets.

@gdotdesign
Created February 10, 2020 15:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gdotdesign/a1be133591f876126a08489a0196af5c to your computer and use it in GitHub Desktop.
Save gdotdesign/a1be133591f876126a08489a0196af5c to your computer and use it in GitHub Desktop.
Crystal Cors Handler
class Cors
include HTTP::Handler
getter origin : String
def initialize(@origin)
end
def call(context)
context.response.headers["Access-Control-Allow-Methods"] = "GET, PUT, POST, DELETE, LOAD, PATCH"
context.response.headers["Access-Control-Request-Headers"] = "Content-Type, *"
context.response.headers["Access-Control-Allow-Headers"] = "authorization"
context.response.headers["Access-Control-Allow-Origin"] = origin
context.response.headers["Access-Control-Allow-Credentials"] = "true"
context.response.headers["Access-Control-Max-Age"] = "1728000"
if context.request.method.downcase == "options"
context.response.content_type = "text/html; charset=utf-8"
context.response.status_code = 200
context.response.print("")
else
call_next context
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment