使 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('');
    }
}