要解决这个问题,需要在服务器上配置跨域资源共享(CORS)来允许对请求的响应。在Blazor应用程序中,可以使用Microsoft.AspNetCore.Cors软件包来实现这一点。
以下是一个示例,在Startup.cs文件中添加使用跨域资源共享:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace BlazorApp1.Server
{
public class Startup
{
// 添加以下代码
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyMethod().AllowAnyHeader()
.WithOrigins("http://localhost:5000") // 在这里修改对应开发环境的URL
.AllowCredentials();
});
});
services.AddControllersWithViews();
}
// 其他代码...
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 添加以下代码
app.UseCors("CorsPolicy");
// 其他代码...
}
}
}
在添加上述代码后,运行Blazor应用程序时,应用程序将允许从“http://localhost:5000”网站中发出的CORS请求。如果要允许任何CORS请求,请更改.WithOrigins()
方法中的参数,例如:
options.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyMethod().AllowAnyHeader()
.AllowAnyOrigin()
.AllowCredentials();
});
下一篇:BlazorWASM全局样式