cors
CORS is a node.js package for providing a connect/express middleware that can be used to enable CORS with various options.
npm)
Installation (via$ npm install cors
Usage
Simple Usage (Enable All CORS Requests)
var express = cors = app = ; app; app;
Configuring CORS
var express = cors = app = ; var corsOptions = origin: 'http://example.com'; app; app;
Configuring CORS Asynchronously
var express = cors = app = ; var whitelist = 'http://example1.com' 'http://example2.com';var { var corsOptions; ifwhitelist !== -1 corsOptions = origin: true ; // reflect (enable) the requested origin in the CORS response else corsOptions = origin: false ; // disable CORS for this request ; // callback expects two parameters: error and options}; app; app;
Configuration Options
origin
: Configures the Access-Control-Allow-Origin CORS header. Expects a string (ex: "http://example.com"). Set totrue
to reflect the request origin, as defined byreq.header('Origin')
. Set tofalse
to disable CORS.methods
: Configures the Access-Control-Allow-Methods CORS header. Expects a comma-delimited string (ex: 'GET,PUT,POST') or an array (ex:['GET', 'PUT', 'POST']
).headers
: Configures the Access-Control-Allow-Headers CORS header. Expects a comma-delimited string (ex: 'Content-Type,Authorization') or an array (ex:['Content-Type', 'Authorization]
). If not specified, defaults to reflecting the headers specified in the request's Access-Control-Request-Headers header.credentials
: Configures the Access-Control-Allow-Credentials CORS header. Set totrue
to pass the header, otherwise it is omitted.maxAge
: Configures the Access-Control-Allow-Max-Age CORS header. Set to an integer to pass the header, otherwise it is omitted.enablePreflight
: By default, a request that runs through this middleware with a method ofOPTIONS
will short-circuit with a204
response to the client after the CORS headers have been written. Set this option tofalse
to disable this feature.
For details on the effect of each CORS header, read this article on HTML5 Rocks.