Вы должны были предоставить оставшуюся часть кода ... Это клиентское приложение Blazor или приложение Razor Components (формально известное как Server-Blazor)?Я думаю, это клиентское приложение Blazor, верно?Почему вы создаете экземпляр HttpClient?Вместо этого вы должны использовать DI (возможно, Constructor Injection), внедряя экземпляр HttpClient, предоставленный самим Blazor.
Проблема, вероятно, на стороне сервера, хотя она выглядит как клиентская ... Попробуйте следующее: 1. Get https://www.nuget.org/packages/Microsoft.AspNetCore.Cors/
2.
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
.....
}
И это:
public void Configure(IApplicationBuilder app,
IHostingEnvironment env)
{
app.UseCors("CorsPolicy");
}
Обратите внимание, еще раз: CORS должен быть включен на стороне сервера , а не в Blazor.См. https://docs.microsoft.com/en-us/aspnet/core/security/cors для получения подробной информации о том, как включить CORS в ASP.NET Core.
Blazor:
@page "/<template>"
@inject HttpClient Http
@functions {
protected override async Task OnInitAsync()
{
var response= await Http.GetJsonAsync<string>
("https://example.com?prm=2");
}
}
Надеюсь, это поможет ...