我试图在 node.js 中允许 CORS,但问题是,如果设置了 Access-Control-Allow-Credentials
,我就无法将 *
设置为 Access-Control-Allow-Origin
。
规范还说我不能为 Access-Control-Allow-Origin
做数组或逗号分隔值,建议的方法是做类似于这个 访问控制-允许起源多起源域? ?的事情
但是在 node.js 中我似乎不能这样做
["http://example.com:9001", "http://example.com:5001"].map(domain => {
res.setHeader("Access-Control-Allow-Origin", domain);
});
res.header("Access-Control-Allow-Credentials", true);
这里的问题是它被数组中的最后一个值覆盖了,因此头部将被设置为 res.setHeader("Access-Control-Allow-Origin", "http://example.com:5001");
来自客户端浏览器的错误:
XMLHttpRequest 无法加载 http://example.com:9090/api/sync “访问控制-允许-起源”标头有一个值 不等于所提供的原产地的「 http://example.com:5001」。 因此,原产地「 http://example.com:9001」不能进入。