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