netcore 解决跨域问题(rush_peng)
发布日期:2021-05-04 20:59:00 浏览次数:35 分类:精选文章

本文共 1638 字,大约阅读时间需要 5 分钟。

1.在StartUp类的ConfigureServices方法中添加如下代码:

services.AddCors(                 //添加跨域                option => option.AddPolicy(                    "any",                    //跨域的名字                    p => p                    .AllowAnyOrigin()          // 允许任何域名                    .AllowAnyHeader()          // 允许任何head                    .AllowAnyMethod()          // 允许任何方法                    //.WithOrigins()          //  允许哪些域名                    ));

2.修改Configure方法

跨域声明应该放在路由的后面

// 允许所有跨域,cors是在ConfigureServices方法中配置的跨域策略名称  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)        {               if (env.IsDevelopment())            {                   app.UseDeveloperExceptionPage();            }            app.UseRouting();            app.UseAuthorization();            app.UseCors();  // 在中间使用跨域            app.UseEndpoints(endpoints =>            {                   endpoints.MapControllers();            });        }

3.在需要跨域的Controller上添加特性

[Route("api/Products/GetProducts")]    [ApiController]    public class BussinessController : ControllerBase    {           [EnableCors("any")]        [HttpGet]        public IActionResult GetProducts()        {               List
products = new List
{ new Product(){ id=1,price=5,productName="袜子"}, new Product() { id = 2, price = 49999, productName = "电脑" }, new Product() { id = 3, price = 120, productName = "鞋子" }, }; return Ok(products); } }

4.禁止跨域(在某个方法上禁止)

[HttpGet("{id}")][DisableCors]public string Get(int id){     return "value";}

参考:

【1】

【2】

上一篇:Axure RP9基本操作
下一篇:.net core 部署到 window 服务器上

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月07日 07时02分45秒