这个错误通常是由于Web API调用失败或跨源网络请求失败导致的。可以通过修改API调用或在API服务器上启用CORS来解决此问题。
如果API调用目标位于相同的域中,您可以在Blazor组件中直接调用该API。例如:
@inject HttpClient Http
...
var response = await Http.GetAsync("api/MyEndpoint");
如果目标API在不同的域中,您需要在服务器上启用CORS。要在ASP.NET Core应用程序中启用CORS,请执行以下步骤:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { ...
app.UseCors(options =>
{
options.WithOrigins("http://example.com")
.AllowAnyHeader()
.AllowAnyMethod();
});
...
}
[EnableCors("AllowSpecificOrigins")]
[HttpGet("api/MyEndpoint")]
public async Task
其中'AllowSpecificOrigins”是之前在Startup.cs中定义的CORS策略的名称。
请注意,启用CORS可能不是最安全的选择。在启用CORS之前,请确保已通过其他安全措施为API提供了必要的保护。