think-cors
v1.1.3
Published
thinkjs cors
Downloads
20
Readme
Usage 中文文档
First, please read the doc about the Middleware in thinkjs.org
Then, config as follows:
npm install think-cors
src/common/bootstrap/middleware.js:
var cors = require("think-cors");
think.middleware("cors", cors);
src/common/config/config.js:
export default {
cors:{
origin: '*',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false
}
};
src/common/config/hook.js:
export default {
request_begin: ['cors']
}
docs
the default config:
{
origin: '*',
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
preflightContinue: false
};
the detail props of config:
{
origin:"*", //Access-Control-Allow-Origin
methods:"GET,POST", //Access-Control-Allow-Methods
credentials:true, //Access-Control-Allow-Credentials
allowedHeaders:"x-token,x-uid", //Access-Control-Allow-Headers
exposedHeaders:"xx,yy", //Access-Control-Expose-Headers
maxAge:1000, //Access-Control-Max-Age for the OPTIONS request
preflightContinue:true // for the OPTIONS request
exclude:[]
}
Config Item
origin
simple config:
{
origin:"*"
}
{
origin:"http://youdomain.com"
}
{
origin:true // set the origin header as yours request domain
}
{
origin:false // disabled cors
}
complex config:
{
origin:[
"http://youdomain.cn",
/^http\:\/\/(.+\.)?thinkjs.org$/
]
}
exclude config:
the config value like this. http://yours.domain.com/xxxx/yyyy => /xxxx/yyyy
{
exclude:[
"/xxxx/yyyy",
/^xxxxxxxx$/ , // the value regex
]
}
####methods
1- default as 'GET,HEAD,PUT,PATCH,POST,DELETE'
2- set as yours method :
{
method:'GET,POST'
}
credentials
1- default as false
2- set as:
{
credentials: true // true or false
}
allowedHeaders
1- default as the value of "access-control-request-headers"
2- set as a string :
{
allowedHeaders:"x-token,x-uid"
}
exposedHeaders
1- default as null
2- set as a string :
{
exposedHeaders:"x-token,x-uid"
}
maxAge
1- default as null
2- set senconds of the OPTIONS request cache:
{
maxAge: 1000// 1000 seconds
}