uniapp 跨域报错:
blocked by CORS policy: Request header field token is not allowed by A***ess-Control-Allow-Headers in preflight response
原因跨域设置没有设置token名称,将token加入请求跨域请求头里面即可
没设置token前
//设置跨域访问(设置在所有的请求前面即可)
router.all("*", function (req, res, next) {
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("A***ess-Control-Allow-Origin", "*");
//允许的header类型,X-Requested-With
res.header("A***ess-Control-Allow-Headers", "Content-Type");
//跨域允许的请求方式
res.header("A***ess-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
// res.header("A***ess-Control-Allow-Methods", "*");
res.header("Content-Type", "application/json;chartset=utf-8");
// if (req.method == 'OPTIONS')
// res.sendStatus(200); //让options尝试请求快速结束
// else
next();
});
设置token后
//设置跨域访问(设置在所有的请求前面即可)
router.all("*", function (req, res, next) {
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("A***ess-Control-Allow-Origin", "*");
//允许的header类型,X-Requested-With
res.header("A***ess-Control-Allow-Headers", "Appid,Secret,A***ess-Token,token,Content-Type,Origin,User-Agent,DNT,Cache-Control,X-Requested-With");
//跨域允许的请求方式
res.header("A***ess-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
// res.header("A***ess-Control-Allow-Methods", "*");
res.header("Content-Type", "application/json;chartset=utf-8");
// if (req.method == 'OPTIONS')
// res.sendStatus(200); //让options尝试请求快速结束
// else
next();
});
对比差异
"A***ess-Control-Allow-Headers", "Content-Type,token"
加上token即可解决,同理要是需要其他请求头以逗号分隔加上即可