【发布时间】:2017-10-01 17:03:28
【问题描述】:
我们在 vue.js 应用程序中使用 axios 来访问 Azure 函数。现在我们收到此错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8080' is therefore not allowed access.
我们正在尝试以这种方式在函数中设置响应标头:
context.res = {
body: response.data,
headers: {
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Origin': 'http://localhost:8080',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Request-Headers': 'X-Custom-Header'
}
}
有人遇到过这个错误吗?
【问题讨论】:
-
托管您的 api 代码的服务器上是否启用了 CORS?
-
不确定你的意思。我们使用的是 Azure 函数,所以我们不配置服务器。
-
因此您从 Azure 请求的资源未配置此标头“Access-Control-Allow-Origin”。因此,例如,如果该标头由服务器设置为“Access-Control-Allow-Origin”:www.google.com,则意味着该 azure 函数允许来自 google 的请求。
-
您应该阅读有关 CORS 请求的信息。基本上,当浏览器看到域不同时,它会单独调用请求的域以获取“Access-Control-Allow-Origin”标头,以查看允许哪些外部域访问服务器。如果您请求 FROM 的域未在标头中列出,则浏览器不允许请求继续进行。
-
您是否尝试过通过Function App Settings 启用 CORS?
标签: azure cors azure-functions axios