Ответ 1
Вы должны были предоставить остальную часть вашего кода... Это клиентское приложение Blazor или приложение Razor Components (формально известное как Server-Side Blazor)? Я думаю, это клиентское приложение Blazor, верно? Почему вы создаете экземпляр HttpClient? Вместо этого вы должны использовать DI (возможно, Constructor Injection), внедряя экземпляр HttpClient, предоставленный самим Blazor.
Проблема, вероятно, со стороны сервера, хотя она выглядит как клиентская...
Попробуйте следующее:
1. Получить 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. Подробнее о том, как включить CORS в ASP.NET Core, см. в https://docs.microsoft.com/en-us/aspnet/core/security/cors.
Blazor:
@page "/<template>"
@inject HttpClient Http
@functions {
protected override async Task OnInitAsync()
{
var response= await Http.GetJsonAsync<string>
("https://example.com?prm=2");
}
}
Надеюсь, это поможет...