netcore webapi 跨域 .net core api 跨域
lt;pgt;在C# ASP.NET Core中处理跨域问题需启用CORS,通过在Program.cs中添加AddCo rs服务并定义策略,如指定允许的源、头、方法及预算,再在UseRouting后调用UseCors应用策略,可全局或在控制器上使用EnableCors生产特性控制跨域访问,注意环境应避免AllowAnyOrigin,确保安全。lt;/pgt;

在C# ASP.NET Core中处理跨域问题,主要通过启用CORS(跨源资源共享)来实现。浏览器出于安全考虑,默认禁止前端应用向不同源的服务器发起请求,当你的前端(如Vue、React、Angular)与协议API CORS
CO ASP.NET Core 提供了灵活的 CORS 策略配置方式,可以在程序启动时定义策略,并应用 ASP.NET Core 项目中实现 CORS 的标准流程:
1. 在Program.cs中添加CORS服务
在Program.cs文件中,在调用builder.Services.AddControllers()之后,使用AddCors方法添加CORS服务并定义策略:
var builder = WebApplication.CreateBuilder(args);lt;pgt;//添加CORS服务builder.Services.AddCors(options) =gt;{options.AddPolicy(quot;AllowSpecificOriginquot;,policy =gt;{policy.WithOrigins(quot;lt;a href=quot;https://www.php.cn/link/8e5687e2d6ab87e5da2f833f3e8986a4quot;g t;https://www.php.cn/link/8e5687e2d6ab87e5da2f833f3e8986a4lt;/agt;quot;) // 允许的前端地址.AllowAnyHeader().AllowAnyMethod().AllowCredentials(); // 如果需要发送发票(如Cookie)});});lt;/pgt;lt;pgt;builder.Services.AddControllers();登录后复制
2. 使用CORS中间件
在app构建部分,调用UseCors启用中间件。注意顺序:必须在UseRouting之后,UseAuthorization之前或之后(视需求),但在UseEndpoints或MapControllers之前。
var app = builder.Build();<;pgt;if (app.Environment.IsDevelopment()){app.UseDeveloperExceptionPage();}<;/pgt;<;pgt;app.UseRouting();<;/pgt;<;div class=quot;aritcle_cardquot;gt;<;a class=quot;aritcle_card_imgquot;href=quot;/ai/1322quot;gt;<;img src=quot;https://img.php.cn/upload/ai_manual/001/431/639/68b6d6bc093a8926.jpegquot; alt=quot;GPT-MINUS1quot;gt;<;/agt;<;div class=quot;aritcle_card_infoquot;gt;<;a href=quot;/ai/1322quot;gt;GPT-MINUS1lt;/agt;lt;pgt;通过在文本中随机地用同义替换单词来愚弄GPTlt;/pgt;lt;div class=quot;quot;gt;lt;img src=quot;/static/images/card_xiazai.pngquot;alt=quot;GPT-MINUS1quot;gt; lt;spangt;83lt;/spangt; lt;/divgt; lt;/divgt; lt;a href=quot;/ai/1322quot; class=quot;aritcle_card_btnquot;gt; lt;spangt;查看详情lt;/spangt; lt;img src=quot;/static/images/cardxiayige-3.pngquot; alt=quot;GPT-MINUS1quot;gt; lt;/agt; lt;/divgt; lt;pgt;// 使用 CORSapp 策略.UseCors(quot;AllowSpecificOriginquot;);lt;/pgt;lt;pgt;app.UseAuthorization
();lt;/pgt;lt;pgt;app.MapControllers();lt;/pgt;lt;pgt;app.R un();登录后复制任选:全局启用CORS
如可以直接在策略中设置,并在UseCors中指定策略名。也可以使用AllowAnyOrigin () .AllowAnyMethod();登录后复制在控制器或Action上启用CORS
如果不CORS先定义一个命名策略或使用匿名策略,然后通过特性标注:
[EnableCors(quot;AllowSpecificOriginquot;)][ApiController][Route(quot;[controller]quot;)]public class WeatherController : ControllerBase{ [HttpGet] public IActionResult Get() { return Ok(new { message = quot;Hello from APIquot; }); }}登录后复制
或者关闭全局CORS: }lt;pgt;[EnableCors(quot;AllowSpecificOriginquot;)]public IActionResult PublicApi() { ... }登录后复制常见问题与注意事项确保UseCors 调用在UseRouting之后,否则不会生效。若须携带帐户(如Cookie、Authorization头),必须设置AllowCredentials(),同时嫁接请求需设置凭据:'include',且不能使用AllowAnyOrigin(),必须明确指定域名。生产环境中避免使用AllowAnyOrigin AllowAnyMethod,应严格限制来源和HTTP方法。多种策略可以定义,按名称选择使用。
基本上就这些。只需正确注册服C# ASP.NET Core就能顺利解决跨域请求问题。
以上就是C#如何处理跨域问题 C# ASP.NET Core 启用CORS的配置的详细内容,更多请关注乐哥常识网相关文章! C#如何进行图像处理?ImageSharp与System.Drawing库使用对比C#的ValueTask和Task有什么不同?C#异步性能优化的选择
