Blazor(客户端)调用不同域上的 API

Blazor (client-side) call to API on different domain

我目前的情况是,我有一个 Blazor WASM(客户端)应用程序调用 Web API,通过 Azure API 管理,坐在不同的 server/domain 上。我使用 Azure Active Directory B2C 保护了 Blazor 应用程序和 Web API。我还使用 jwt-validate 在 API 经理级别进行身份验证。我已经弄清楚如何将 JWT 令牌从 Blazor 应用程序传递到 API 管理和 Web API(使用 CustomAuthorizationMessageHandler 解决方案),但我在制作时看到 Blazor 应用程序出现奇怪的行为Api 电话。

当我使用方法 Http.GetFromJsonAsyn<MyEntity>("<api manager endpoint>") 进行调用时,GET 请求在 API 管理器中显示为 OPTIONS 请求,因此导致错误(无法将传入请求与操作匹配).我尝试了多种方法来进行 API GET 调用,但所有方法都会导致 OPTIONS 调用。

我无法确定这是 Blazor 问题、CustomAuthorizationMessageHandler 问题还是其他问题。有没有人遇到过这个问题,更重要的是,有没有人解决了这个问题?

OPTIONS 调用是一个 'pre-flight' 调用,用于确定是否允许调用。

您似乎没有在 API 服务器上配置 CORS。
但我本以为会有更好的错误消息,关于 CORS。

the docs