.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步即可启用跨域请求访问,前端不需要做任何更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值