答案:.NET Core通过CORS中间件解决跨域问题,需在Program.cs中配置策略,如AllowAnyOrigin或指定源,UseCors置于UseRouting后、UseAuthorization前,可全局或在控制器上应用策略,支持多域名和凭据传递,预检请求自动处理,生产环境应避免宽松策略以保障安全。

.NET Core Web API 处理跨域(CORS)问题,主要通过内置的 CORS 中间件来实现。只要在请求来源的域名、协议或端口与 API 所在地址不一致时,浏览器就会触发跨域限制。要解决这个问题,需要在服务端正确配置 CORS 策略。
在 .NET Core 项目中,CORS 功能需要显式启用。需在 Program.cs 文件中添加相关配置:
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", policy =>
{
policy.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
var app = builder.Build();
app.UseCors("AllowAll");
注意:UseCors 必须放在 UseRouting 之后、UseAuthorization 之前,否则策略不会生效。
生产环境中不建议使用 AllowAnyOrigin,应明确指定允许的源:
builder.Services.AddCors(options =>
{
options.AddPolicy("SpecificOrigin", policy =>
{
policy.WithOrigins("https://yourfrontend.com")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials(); // 若需携带 Cookie 或 Authorization Header
});
});
支持多个前端域名可使用 WithOrigins 添加多个地址。
如果不想全局启用 CORS,可以只对特定接口启用:
[EnableCors("SpecificOrigin")]
public class WeatherController : ControllerBase
{
[HttpGet]
public IActionResult Get() => Ok(new { message = "Hello" });
}
也可用 [DisableCors] 关闭某个 Action 的跨域支持。
浏览器对非简单请求会先发送 OPTIONS 预检请求。.NET Core 自动处理 OPTIONS 请求,只要策略配置正确,无需额外代码。确保服务器返回 Access-Control-Allow-Origin、Access-Control-Allow-Methods 等头部。
若使用了 AllowCredentials,前端请求需设置 withCredentials = true,同时后端不能使用 AllowAnyOrigin,必须指定具体域名。
基本上就这些。合理配置策略既能解决跨域问题,又能保证安全性。开发阶段可用宽松策略,上线前务必收紧权限。
以上就是.NET Core Web API如何处理跨域(CORS)问题_CORS跨域解决方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号