• 如何在.Net Core中设置跨域访问?


    原文:https://blog.csdn.net/love_shang/article/details/113136345

    .Net Core中如何设置跨域访问
    问题错误
    全局跨域
    局部跨域
    文章参考
    问题错误
    一般情况WebApi都是跨域请求,没有设置跨域一般会报以下错误:

    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:48057' is therefore not allowed access.
    1
    所以需要进行配置 ASP.net Core的两种跨域:全局和区域
    我们常用的是全局跨域,区域跨域可能用的比较少。在讲跨域前先讲一下配置
    我们在创建一个WebApi项目的时候会自动引用相关框架

    一般框架中都有我们要进行设置,你不设置的话,那自然没办法使用了啊
    配置信息统一都在StartUp.cs 文件哦

    全局跨域
    打开Startup.cs文件,在ConfigureServices方法中添加以下代码

    //1.配置跨域处理,允许所有来源:
    services.AddCors(options =>
    options.AddPolicy("自定义的跨域策略名称", p => p.AllowAnyOrigin())
    );
    //2允许一个或多个具体来源:
    services.AddCors(options =>
    {
    // Policy 名稱 CorsPolicy 是自訂的,可以自己改
    options.AddPolicy("自定义的跨域策略名称", policy =>
    {
    // 設定允許跨域的來源,有多個的話可以用 `,` 隔開
    policy.WithOrigins("http://localhost:3000","http://127.0.0.1")
    .AllowAnyHeader()
    .AllowAnyMethod()
    .AllowCredentials();
    });
    });
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    以上两种按需求选择一种即可。
    接着就是在Configure方法(中间件)中添加一下代码:

    app.UseCors("自定义的跨域策略名称");//必须位于UserMvc之前
    app.UseMvc();
    1
    2
    如果要全局配置跨域,要在中间件的路由配置中加上
    .RequireCors(“自定义的跨域策略名称”)

    //自我感觉可要可不要这步
    app.UseEndpoints(endpoints =>
    {
    endpoints.MapControllers().RequireCors("自定义的跨域策略名称");
    });
    1
    2
    3
    4
    5
    局部跨域
    ConfigureServices方法不变,删去Configure中的app.UseCors()方法

    在Controller顶部或者Action方法顶部加上[EnableCors(“自定义的跨域策略名称”)]特性,例如

    [EnableCors("自定义的跨域策略名称")]
    [Route("api/[controller]")]
    public class ContactController : Controller
    {

    }
    1
    2
    3
    4
    5
    6
    以上就可实现指定某个Controller或者Action跨域

    禁止跨域:
    禁止跨域在Controller或者Action加上[DisableCors]特性即可禁止跨域

    [HttpGet("{id}")]
    [DisableCors]
    public string Get(int id)
    {
      return "value";
    }
    1
    2
    3
    4
    5
    6
    文章参考
    https://blog.csdn.net/weixin_45978023/article/details/108518511
    https://www.cnblogs.com/tianma3798/p/6920704.html
    https://blog.johnwu.cc/article/asp-net-core-cors.html?from=singlemessage&isappinstalled=0
    ————————————————
    版权声明:本文为CSDN博主「love_shang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/love_shang/article/details/113136345

  • 相关阅读:
    [CTSC2018]暴力写挂
    【bzoj 2870】 最长道路tree
    [CTSC2010]珠宝商
    [JXOI2018]守卫
    [JXOI2018]排序问题
    [AHOI2014/JSOI2014]骑士游戏
    [SNOI2017]遗失的答案
    【LGP5437】【XR-2】约定
    【LGP5349】幂
    hdu-2688 Rotate---树状数组+模拟
  • 原文地址:https://www.cnblogs.com/bruce1992/p/16558258.html
Copyright © 2020-2023  润新知