Cors Azure函数http调用在本地主机上时始终返回阻止的跨源请求

Cors Azure函数http调用在本地主机上时始终返回阻止的跨源请求,cors,azure-functions,Cors,Azure Functions,我刚开始使用Azure函数,当我从Angular调用HTTP触发器函数时,我得到: 跨源请求被阻止:同源策略不允许在[MY_ENDPOINT]读取远程资源。(原因:CORS请求未成功) 我正在localhost上运行,初始搜索指向将配置添加到local.settings.json: "Host": { "LocalHttpPort": 7071, "CORS": "*", "CO

我刚开始使用Azure函数,当我从Angular调用HTTP触发器函数时,我得到:

跨源请求被阻止:同源策略不允许在[MY_ENDPOINT]读取远程资源。(原因:CORS请求未成功)

我正在localhost上运行,初始搜索指向将配置添加到local.settings.json

  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  }
我还尝试了上面的
CORS
我已经设置了我的local.settings.json属性

我还尝试导航到项目属性>调试>应用程序参数并添加

host start --useHttps --cors *

我已经检查过,我可以通过postman和与之相关的招摇过市ui运行它来获得响应。因此,我相信这不是一个转移注意力的问题,问题在于浏览器CORS的飞行前请求。但是如何修复它呢?

我在本地复制了错误,并通过使用
local.settings.json
执行相同的操作来解决它

我问您是否在门户上运行该功能,因为您提到了“始终复制”选项。如果您已经将该功能部署到Azure,请在门户上设置CORS


如果你还没有解决这个问题,请告诉我。

我终于找到了答案

我的第一次尝试: local.settings.json

"Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  }
失败,因为当我按F5运行项目时,
local.settings.json
被忽略,或者因为我通过https为我的客户端提供服务,而我通过http或两者都提供服务

我的第二次尝试: 项目->属性->调试->应用程序参数

主机启动--使用HTTPS--cors*
按F5开始

似乎失败了,因为我继续犯错误

已阻止跨源请求:同一源策略不允许读取位于的远程资源https://localhost:7071/api/foo. (原因:CORS请求未成功)

我在Firefox中运行我的应用程序,但切换到chrome返回:

net::ERR\u CERT\u AUTHORITY\u无效

解决方案1:(检查想法是否可行的黑客方法)

  • 复制azure端点并将其粘贴到浏览器中
  • 接受“此站点不安全”消息
  • 重新加载客户端
  • 解决方案2:

  • 创建证书
  • 使用以下内容更新
    Project->Properties->Debug->Application arguments
    主机启动--使用HTTPS--证书\“myCert.pfx\”--密码\“somePassword\”
  • 按F5
  • 重新加载客户端

  • 您是否在本地运行Angular项目并在门户上运行Azure功能?我正在本地运行它