我正在创建一个
它目前正在工作。但我需要用正则表达式替换
因此,当我将其编辑为
所以我想知道,是否不允许使用
我做错了什么吗?
express
服务器。以下是代码片段。const app = express();
app.use(cookieParser()); // mainly used to retrieve and store CSSO tokens
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "https://the.real.url.com:8081");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Expose-Headers", "Content-Disposition, Content-Type");
res.header("Access-Control-Allow-Credentials", true);
next();
});
它目前正在工作。但我需要用正则表达式替换
https://the.real.url.com:8081
。
首先,它可以是https
或只是http
。
其次,可能有端口等等。因此,当我将其编辑为
https?://the.real.url.com:8081
以允许http
和https
时,我会得到以下错误:The 'Access-Control-Allow-Origin' header contains the invalid value 'https?://the.real.url.com:8081'. Origin 'https://the.real.url.com:8081' is therefore not allowed access.
我还尝试过其他变化,例如http(s?)://the.real.url.com:8081
, https?://*
等等,但都不起作用。所以我想知道,是否不允许使用
Regex
? 但通配符*
是可行的。我做错了什么吗?
subdomain.example.com
吗? - Nuxexample.com
、subdomain.example.com
,但也会匹配bad-actor-example.com
,从而允许攻击者绕过跨域资源共享(CORS)限制。如果你不关心https://example.com
域名,只需在正则表达式中包含前导点即可:origin: /\.example\.com$/
。 - undefined