在 ASP.NET Core 6 项目中,可以通过配置 CORS 中间件来允许跨域访问。具体步骤如下:
安装 Microsoft.AspNetCore.Cors 包 打开 NuGet 包管理器控制台,执行以下命令:
Install-Package Microsoft.AspNetCore.Cors
在 Startup.cs 文件的 ConfigureServices 方法中注册 CORS 服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
services.AddControllers();
}
通过 AddCors 方法可以添加一个 CORS 服务。在这里,我们使用了默认的策略。它允许来自任何来源(AllowAnyOrigin())、带任意头(AllowAnyHeader())和支持任意 HTTP 方法(AllowAnyMethod())的请求。
在 Configure 方法的末尾启用 CORS 中间件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//...
app.UseCors();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
在这里,我们使用 UseCors 方法来启用 CORS 中间件。默认情况下,中间件将使用 ConfigureServices 方法中注册的默认策略。
现在,我们已经完成了跨域访问的设置。在 API 控制器的方法上添加 [EnableCors] 属性以解决“Access-Control-Allow-Origin”错误:
[ApiController]
[Route("[controller]")]
[EnableCors]
public class SampleController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok("Hello from ASP.NET Core API!");
}
}
注意:在生产环境中,建议使用更严格的跨域策略,例如只