使 Access-Control-Allow-Origin 支持多个 Origin
做跨域请求时,会需要用到 HTTP 响应头部的 Access-Control-Allow-Origin
属性,但是这个属性只能配置一个域,当一个接口需要被多个域请求时,该如何配置呢?
很简单,动态设置这个值就好,以一个部署在阿里云上的函数为例:
module.exports.handler = function (req, resp, context) {
const { queries, headers } = req;
const { origin } = headers;
if (/\.ihanai\.com/.test(origin)) {
resp.setHeader('Access-Control-Allow-Origin', origin);
resp.send('');
} else {
resp.setHeader('Access-Control-Allow-Origin', 'https://blog.ihanai.com');
resp.send('');
}
}