1. 基本的配置如下
const cors = require('cors');
// 允许跨域
app.use(cors());
或者
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'Authorization,X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method' )
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PATCH, PUT, DELETE')
res.header('Allow', 'GET, POST, PATCH, OPTIONS, PUT, DELETE')
next();
});
上面这样请求,使用jQuery的ajax请求没有问题,在vue项目里使用就会报错
2.遇到的问题
在vue项目中,这个报错,百度了一下说是不支持通配符,改动如下。
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:8080')
res.header('Access-Control-Allow-Credentials', true)
res.header('Access-Control-Allow-Headers', 'Authorization,X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method' )
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PATCH, PUT, DELETE')
res.header('Allow', 'GET, POST, PATCH, OPTIONS, PUT, DELETE')
next();
});