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

时间:2017-12-26 10:47:50

标签: azure cors azure-functions

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

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

欢迎并赞赏建议。

非常感谢。

1 个答案:

答案 0 :(得分:1)

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

由于您无法访问Azure功能中的基础服务器,因此您无法将建议的基于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) + ')'
  }
}