azure-functions - 在我的 UNO WASM 项目中,HTTP POST 调用在我的本地 Azure Functions 上变成了 HTTP OPTIONS

标签 azure-functions uno-platform webassembly

我的 HTTP Post 调用在我的 UWP 和 Droid 项目中按预期工作,但是当我从我的 WASM 项目中进行相同的调用时,Azure Functions 将调用视为 OPTIONS 而不是 POST。我读到这是一个 CORS 问题,我需要将 local.settings.json 文件添加到我的 Azure Functions 项目中。现在看起来像这样:

{
  "Values": {

  },
  "Host": {
    "CORS": "*"
  }
}
我仍然遇到同样的问题。这不是 HTTP 调用,因为它可以在 UNO 中的其他平台上运行。
有谁知道这是怎么回事?

最佳答案

问题
这就是 CORS 机制的神奇之处。这个电话被称为 CORS 预检 用于与服务器核对调用是否经过服务器授权。
为什么你有 CORS 问题
由于 WebAssembly (WASM) 应用程序在浏览器中运行,因此它们无法摆脱浏览器中存在的所有安全系统。 Http 调用实际上是由浏览器使用 fetch api 完成的由 WasmHttpHandler .
大多数情况下,当您使用与应用程序不同的主机名进行调用时,就会发生这种情况。假设您在 https://mybikeisyellow.app/ 上部署了 Wasm 应用程序并对 https://myneightborbikeisred.biz 进行 REST 调用,浏览器会先生成一个 OPTIONS调用 https://myneightborbikeisred.biz在允许任何其他非 GET 之前在那里打电话。
更多关于 CORS
您可以在 Internet 上搜索有关 CORS 的信息,这里有很多关于它为何存在以及如何管理它的非常有用的信息。我找到了 this one做得很好。
如何解决您的问题
针对您的具体问题 在 Azure Fuctions 中,关注 this guide你就可以让它接受你的请求。

关于azure-functions - 在我的 UNO WASM 项目中,HTTP POST 调用在我的本地 Azure Functions 上变成了 HTTP OPTIONS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62999277/

相关文章:

uno-platform - 有没有办法避免在 Wasm 应用程序版本中出现 Uno Platform 启动画面?

uwp - 错误 CS5001 : Program does not contain a static 'Main' method suitable for an entry point

rust - web_sys crate 是如何工作的?

azure - 跨资源组部署 Azure Functions

c# - Azure TimerTrigger 无法在 .NET 7 独立工作进程中工作

ios - 无法在 Mac 上运行 iOS 版 Uno 项目 - 无法加载 `SQLitePCLRaw.core`

javascript - 从 Wasm 加载文件?

webassembly - 为什么我的 WebAssembly 函数比等效的 JavaScript 慢?

git - 未执行Azure功能的自动部署

c# - 带有服务总线的Azure功能: How to keep a message in the queue if something goes wrong with its processing?