0

我的 Blazor 页面代码:

private async Task OnSendSMSClick()
    {
        var request = new HttpRequestMessage(HttpMethod.Post, baseAddress);
        request.SetBrowserRequestMode(BrowserRequestMode.NoCors);
        request.SetBrowserRequestCache(BrowserRequestCache.NoCache);
        HttpContent content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string, string>("client_id", client_id),
                new KeyValuePair<string, string>("client_secret", client_secret)
            });
        content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
        request.Content = content;
        RequestOutput = request.ToString();

        HttpResponseMessage response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead);
        
        ResponseOutput = response.StatusCode.ToString();
    }

尽管我在 Fiddler 上看到返回了实际结果,但响应总是返回空。在 Google Chrome 上,我看到服务器以正确的标头响应 200,但不知何故 Chrome 显示“加载响应数据失败”。

提琴手 SS

Chrome 上没有错误,我收到 200 响应,但它以某种方式无法显示响应内容:

铬 200

Chrome 无法显示响应内容

你可以在调试器中看到响应对象是空的..

空响应对象

我该如何解决这个问题,我在这里缺少什么?

谢谢!

4

1 回答 1

1

Blazor 在需要 CORS 的网站上存在问题(来源)。

不幸的是,在 Blazor 客户端上无能为力。
我发现的唯一解决方案是在服务器上禁用 CORS或在 Blazor 之外设置代理服务器。

于 2021-08-27T17:17:14.993 回答