• .NET Core 3.1 跨域请求 (CORS)


    .NET Core 3.1 跨域请求 (CORS)

    在用ajax进行请求服务器资源时如果协议+主机名+端口号 (如存在)相同则允许交互,否则会出现跨域问题,不能访问和操作其他域下的资源。常用解决方式有在前端使用jsonp和在后端启用CORS。

    jsonp可以支持get请求,但不支持post请求。完美的解决方案还是服务器端启用CORS。在.NET Core 3.1 启用CORS变得非常简单,不需要像早期的.NET CORE版本需要手动安装CORS程序包,只需要2步就可以完成。

    1、添加策略

    打开服务器端项目的“Startup.cs”文件,找到ConfigureServices(IServiceCollection services)方法,添加如下代码。

     services.AddCors(options => {
                    options.AddPolicy("any", builder => { builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader(); });
                });
    

    代码表示在注入cors中间件:

    “any”表示策略名称,可以随便起,在第2步会用到;

    AllowAnyOrigin表示允许任何域;

    AllowAnyMethod表示允许任何方法;

    AllowAnyHeader表示允许任何消息头。

    如果是允许指定的域、方法、消息头需要使用WithOrigins、WithMethods、WithHeaders方法。

    在这里可以添加多条策略。

    2、启用策略

    在Configure(IApplicationBuilder app, IWebHostEnvironment env)方法中添加以下代码。

    app.UseCors("any");
    

    括号中的"any"表示要启用的策略名称(第1步中定义的)。

    以上2步即可启用跨域请求访问,前端不需要做任何更改。

  • 相关阅读:
    Mybatis传入list的注意点
    synchronized锁
    手撸红黑树
    Vue cdn加速配置
    多线程之BlockingQueue中 take、offer、put、add的一些比较
    线程池
    ThreadLocal
    jdk LocalDateTime mybatis 空指针解决办法
    不同对象中 类型与属性名的属性 进行数据转换
    HashMap 的put方法
  • 原文地址:https://www.cnblogs.com/mzwhj/p/12915888.html
Copyright © 2020-2023  润新知