Blazor WebAssembly:不支持提供的ContentType。

时间:2020-05-29 08:53:51

标签: asp.net asp.net-web-api blazor blazor-client-side blazor-webassembly

我今天通过以下命令行安装了Blazor WebAssembly示例项目(WeatherForecast):

dotnet new blazorwasm --hosted -o ProjectName

安装后,我通过Visual Studio 2019在调试模式下直接启动了SPA。浏览器是:Chrome。浏览器显示该应用程序,但是当我选择导航菜单“获取数据”时,什么也没有发生。 Chrome显示1个错误:

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
      Unhandled exception rendering component: The provided ContentType is not supported; the supported types are 'application/json' and the structured syntax suffix 'application/+json'.
System.NotSupportedException: The provided ContentType is not supported; the supported types are 'application/json' and the structured syntax suffix 'application/+json'.
  at System.Net.Http.Json.HttpContentJsonExtensions.ValidateContent (System.Net.Http.HttpContent content) <0x2e87f38 + 0x0009a> in <filename unknown>:0 
  at System.Net.Http.Json.HttpContentJsonExtensions.ReadFromJsonAsync[T] (System.Net.Http.HttpContent content, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken) <0x2e87d30 + 0x00006> in <filename unknown>:0 
  at System.Net.Http.Json.HttpClientJsonExtensions.GetFromJsonAsyncCore[T] (System.Threading.Tasks.Task`1[TResult] taskResponse, System.Text.Json.JsonSerializerOptions options, System.Threading.CancellationToken cancellationToken) <0x2e40838 + 0x0011c> in <filename unknown>:0 
  at BlazorIssue.Client.Pages.FetchData.OnInitializedAsync () [0x00033] in D:\Projects\BlazorIssue\Client\Pages\FetchData.razor:43 
  at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync () <0x2b8cb98 + 0x0013a> in <filename unknown>:0 
  at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask (System.Threading.Tasks.Task taskToHandle) <0x2dd8340 + 0x000b6> in <filename unknown>:0 

Chrome显示以下请求标题:

Blazor WebAssembly Request Headers

上下文信息:

  • Chrome:V83.0.4103.61(64位)
  • Blazor:V3.2.0
  • Visual Studio:V16.6.0
  • DotNet V3.1.300
  • DotNet SDK:V3.1.300

这很好奇,因为该示例项目的全新安装昨天正常工作。

2 个答案:

答案 0 :(得分:16)

如果将Client项目指定为Startup项目,则可能在Web Assembly模板项目的ASP.NET Hosted版本中发生。确保将Server项目设置为Startup项目。

Blazor WebAssembly - Server - Startup Project

答案 1 :(得分:1)

虽然这对于收到“200 Ok”响应的 OP 来说不是真的,如果您的 API 方法返回 null(我的抛出一个数据库异常并返回 null 作为后备)。

我的响应是“204 无内容”和“不支持提供的 ContentType;支持的类型是‘application/json’和结构化语法后缀‘application/+json’。 ”作为客户端的错误。

我想 null 看起来不像 json :-)