这个问题可能是由浏览器的同源策略引起的。为了解决这个问题,需要在Blazor应用程序中添加一个CORS策略。可以使用Microsoft.AspNetCore.Cors包来实现。以下是一个简单的代码示例,演示如何在服务器端的Blazor应用程序中使用CORS策略: 在Startup.cs中添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowLocalhost",
builder =>
{
builder.WithOrigins("http://localhost");
});
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors("AllowLocalhost");
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapBlazorHub();
endpoints.MapFallbackToPage("/_Host");
});
}
上面的代码在服务集合中添加了CORS策略,然后在应用程序中使用它来设置响应的跨域请求头。在这里,我们只允许来自本地主机(即localhost)的请求。现在,即使在Blazor服务器应用程序中打开多个浏览器标签,也应该能够正常工作。