本文主要介绍一下nodejs服务器开通跨域请求,支出所有跨域
一、支持所有跨域
项目根目录app.js
// 允许跨域请求
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'DELETE,PUT,POST,GET,OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, Authorization');
next();
});
重启服务,即可支持跨域请求。
注意:新手使用会不知道要放在什么位置,建议放在
var app = express();
和app.use('/', indexRouter);
之间
二、支持局部跨域(安全系数高)
app.use(function(req,res,next){
var orginList=[
"http://www.vitian.vip",
"http://www.alibaba.com",
"http://www.qq.com",
"http://www.baidu.com"
]
if(orginList.includes(req.headers.origin.toLowerCase())){
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("Access-Control-Allow-Origin",req.headers.origin);
}
//允许的header类型
res.header("Access-Control-Allow-Headers", "content-type");
//跨域允许的请求方式
res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
if (req.method.toLowerCase() == 'options')
res.send(200); //让options尝试请求快速结束
else
next();
}