首页app攻略netcore webapi 跨域 .net core api 跨域

netcore webapi 跨域 .net core api 跨域

圆圆2025-11-24 07:00:42次浏览条评论

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

c#如何处理跨域问题 c# asp.net core启用cors的配置

在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#异步性能优化的选择

C#如何处理跨域问题
谷歌浏览器如何自定义键盘快捷键 谷歌浏览器修改或设置扩展程序快捷键
相关内容
发表评论

游客 回复需填写必要信息