使用Azure功能启用CORS通配符子域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Azure功能启用CORS通配符子域相关的知识,希望对你有一定的参考价值。

Azure功能允许我们启用cors并提供允许访问的特定URL集。我们还可以输入通配符(*),允许所有域访问该功能。

有没有办法在cors设置中添加一个条目,以允许特定域的所有子域访问该函数,而不是显式设置每个子域?我们已经尝试添加一个条目,例如http://*.example.com,看看是否允许子域访问,但它似乎不起作用。我们想知道是否还有其他方法可以实现这一目标。

建议是值得欢迎和赞赏的。

非常感谢提前。

答案

正如this StackOverflow answer所述,CORS在主机名方面是全有或全无。您必须提供显式域或子域。它是整体规范的一部分,而不是特定于Microsoft的。

由于您无权访问Azure Functions中的基础服务器,因此无法将建议的基于RegEx的标头用于CORS。

因此,如果你的函数输出是JSON,我建议你看一下使用JSONP。它可以像检查回调查询字符串参数和将输出包装在回调函数中一样简单。 Node.js中的示例:

const addCallback = function (context, req) {
  if (req.query && req.query.callback) {
    context.res.body = callback + '(' + JSON.stringify(context.res.body) + ')'
  }
}

以上是关于使用Azure功能启用CORS通配符子域的主要内容,如果未能解决你的问题,请参考以下文章

Access-Control-Allow-Origin 通配符子域、端口和协议

Access-Control-Allow-Origin 通配符子域、端口和协议

WebAPI - 为子域启用 CORS

如何为 ASP.NET Core 2.2 项目中的子域正确启用 CORS?

在 Azure 移动服务中启用 CORS - OPTIONS 未授权

在 Azure 上为 .NET Web Api 启用 CORS