HttpMessageResponse 在 Blazor WebAssembly 应用程序中没有内容
Posted
技术标签:
【中文标题】HttpMessageResponse 在 Blazor WebAssembly 应用程序中没有内容【英文标题】:HttpMessageResponse have no content in Blazor WebAssembly application 【发布时间】:2022-01-15 03:05:55 【问题描述】:我已经开发了 Blazor WebAssembly。
点击后,我正在执行 HTTP POST,如下所示:
HttpClient httpClient = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, connectURl);
request.SetBrowserRequestMode(BrowserRequestMode.NoCors);
request.Content = new ByteArrayContent(contentBytes);
var response2 = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead);
它似乎没问题,正如 Wireshark 显示的那样 - 响应状态为 OK,并且有 186 个字节的内容!
但是,在我的 Blazor Wasm 应用程序中,我收到了内容为空的响应...
谁能猜出原因?任何人都可以指出一些我可以用谷歌搜索的短语吗?我设置了 CORS,也许我应该做些额外的事情?
【问题讨论】:
wasm 中的 response2.Status 是什么? CORS 是否适用,即 App 和 API 的 URL 不同? wasm 中的状态为 0,尽管通过 Wireshark 为 200。我以为我在上面的代码中的第 3 行禁用了 CORS。在出现关于没有获取数据的错误之前。我应该设置其他东西吗? 【参考方案1】:实际上,问题在于 CORS,但不是在我的 Blazor 应用程序中,而是在托管 Blazor 应用程序的服务器中。有必要在响应中包含这样的 HTTP 标头:
Headers.Add("Content-Type", "application/wasm");
【讨论】:
以上是关于HttpMessageResponse 在 Blazor WebAssembly 应用程序中没有内容的主要内容,如果未能解决你的问题,请参考以下文章