Asp.Net Core 2.1 跨域问题

今天进行开发的时候写了一个新的Web程序需要调用之前程序的验证接口,用JQuery调用时浏览器弹出了下面的错误

我们的请求跨域被拒绝了,这时我需要对之前的程序进行跨域处理,话不多说上代码。

访问的程序是Asp.Net Core2.0架构,我们在Web项目中添加NuGet包

搜索:Microsoft.AspNetCore.Cors 下载对应的版本即可

安装完成之后,打开StartUp进行中间件的配置

首先在ConfigureServices中注入跨域服务,策略名为:“AllowAllOrigin”(名字无关紧要,随便取)

 services.AddCors(
                options => options.AddPolicy("AllowAllOrigin", buildler =>
                   {
                       buildler.WithOrigins("http://localhost:49554").AllowAnyMethod().AllowAnyHeader().AllowCredentials();

                   })
                );

注:图中的http://localhost:49554是客户端的地址,不要打错了。

然后我们在Configure 配置跨域中间件

      app.UseCors("AllowAllOrigin");

方法中策略名要与之前保持一致,启动后发现之前的报错消失了,请求成功。

关于这种跨域方式注意以下几点:

1.buildler.WithOrigins("http://localhost:50492")中可以添加一个数组作为参数,传递多个地址

2.在Configure中试用            app.UseCors()后跨域则配置为全局跨域,如果想做的更灵活一些,还支持Controller级别和Action级别

(1)控制器级别

(2)Action级别

这只是跨域的一种办法,方法还有很多,本文内容为作者自己从实践中摸索出来的,可能不是很科学,欢迎各位大佬指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值