1、不同请求方法写在不同的配置中,可以用代码代替
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
res.header('Access-Control-Allow-Methods', 'PUT,POST,GE,OPTIONS');
res.header("Access-Control-Allow-Credentials", "true");
if (req.method.toLowerCase() === 'options') {
res.send(200);
} else {
next();
}
});
2.或者
router.options('/xxxxx', function (req, res, next) {
res.send(204);
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
res.header('Access-Control-Allow-Methods', 'PUT,POST,GE,OPTIONS');
res.header("Access-Control-Allow-Credentials", "true");
if (req.method.toLowerCase() === 'options') {
res.send(200);
} else {
next();
}
});
3.或者nginx
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' '*';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' '*';
}
proxy_pass http://agentProxy;
proxy_set_header Host $host;