cors gives you easy control over Cross Origin Resource Sharing for your site. It allows you to whitelist particular domains per route, or to simply allow all domains `*` If desired you may customize nearly every aspect of the specification. ### Syntax ``` cors [path] [domains...] { origin [origin] origin_regexp [regexp] methods [methods] allow_credentials [allowCredentials] max_age [maxAge] allowed_headers [allowedHeaders] exposed_headers [exposedHeaders] } ``` * **path** is the file or directory this applies to (default is /). * **domains** is a space-seperated list of domains to allow. If ommitted, all domains will be granted access. * **origin** is a domain to grant access to. May be specified multiple times or ommitted. * **origin_regexp** is a regexp that will be matched to the `Origin` header. Access will be granted accordingly. It can be used in conjonction with the `origin` config (executed as a fallback to `origin`). May be specified multiple times or ommitted. * **methods** is set of http methods to allow. Default is these: POST,GET,OPTIONS,PUT,DELETE. * **allow_credentials** sets the value of the Access-Control-Allow-Credentials header. Can be true or false. By default, header will not be included. * **max_age** is the length of time in seconds to cache preflight info. Not set by default. * **allowed_headers** is a comma-seperated list of request headers a client may send. * **exposed_headers** is a comma-seperated list of response headers a client may access. ### Examples Simply allow all domains to request any path: cors Protect specific paths only, and only allow a few domains: cors /foo http://mysite.com http://anothertrustedsite.com Full configuration: ``` cors / { origin http://allowedSite.com origin http://anotherSite.org https://anotherSite.org origin_regexp .+\.example\.com$ methods POST,PUT allow_credentials false max_age 3600 allowed_headers X-Custom-Header,X-Foobar exposed_headers X-Something-Special,SomethingElse } ```