我有一个使用以下cors
中间件配置运行的 Express 服务器:
app.use(
cors({
origin: [
/^http:\/\/localhost:\d+/,
/^https:\/\/щоденниквражень\.укр/,
/^https:\/\/xn--80adfecflqzagb7a3ioc\.xn--j1amh/,
],
}),
);
(xn--80adfecflqzagb7a3ioc.xn--j1amh
是 Punycode 的表示щоденниквражень.укр
)
我已从https://щоденниквражень.укр托管的页面向https://api.щоденниквражень.укр提出请求。大多数浏览器在Origin
标头中发送 Punycode 表示,这可以按预期工作。
但是 IE11 发送原始的https://щоденниквражень.укр
. 它应该与列表中的第二个正则表达式匹配,但在服务器端,我从req.headers.origin
:
获得以下标头值
Origin: https://Ñ Ð¾Ð´ÐµÐ½Ð½Ð¸ÐºÐ²ÑаженÑ.ÑкÑ
,显然,它无法匹配任何正则表达式(某些字符可能显示不正确,但你明白了 -字符集是错误的)。
有可能解决这个问题吗?我想我可能应该设置编码 - 但我不知道在哪里做以及选择哪一个。任何帮助表示赞赏!