提问人:Ozan Yasin Dogan 提问时间:8/25/2021 更新时间:8/28/2021 访问量:901
Blazor WASM 上的 HttpClient.SendAsync 返回空 HttpResponseMessage,尽管 Fiddler 显示已收到正确的响应
HttpClient.SendAsync on Blazor WASM returns empty HttpResponseMessage although Fiddler shows that correct response was received
问:
我的 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 显示“无法加载响应数据”。
Chrome 上没有错误,我收到 200 响应,但它不知何故无法显示响应内容:
您可以在调试器中看到响应对象为空。
我怎样才能解决这个问题,我在这里缺少什么?
谢谢!
答:
2赞
Steve C
8/28/2021
#1
Blazor 在需要 CORS (源) 的站点上存在问题。
遗憾的是,在 Blazor 客户端上无法执行任何操作。
我找到的唯一解决方案是在服务器上禁用 CORS 或在 Blazor 外部设置代理服务器。
评论