跨域资源共享 CORS node express 配置
请求后端接口报类似异常,是出现跨域问题
No 'Access-Control-Allow-Origin' header is present on the requested resource.
后端是 node express 启的服务,配置如下
// 设置请求头为允许跨域
res.header("Access-Control-Allow-Origin", "http://localhost:9527");
// 设置服务器支持的所有头信息字段,这里设置的是允许自定义的头,根据实际情况设置
res.header("Access-Control-Allow-Headers", "Authorization,_o,_p,_w,Content-Type");
// 如果需要支持 cookie ,需要设置true,并且Access-Control-Allow-Origin 需要指定特定域名,不能用 *
res.header("Access-Control-Allow-Credentials", "true");
// 设置服务器支持的所有跨域请求的方法
res.header("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
app.all("*", function (req, res, next) {
// 设置请求头为允许跨域
res.header("Access-Control-Allow-Origin", "http://localhost:9527");
// 设置服务器支持的所有头信息字段
res.header("Access-Control-Allow-Headers", "Authorization,_o,_p,_w,Content-Type");
res.header("Access-Control-Allow-Credentials", "true");
// 设置服务器支持的所有跨域请求的方法
res.header("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
console.log(req.method.toLowerCase())
if (req.method.toLowerCase() == "options") {
res.send(200);
// 让options尝试请求快速结束
} else {
next();
}
});
app.get("/user", function (req, res) {
const msg = [];
const result = {
data: msg,
code: 0,
msg: "",
};
console.log('user')
res.json(result);
});
app.all 需要在其他接口的上边