Asp.Net Core 2.1 跨域问题

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

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

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

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

Asp.Net Core 2.1 跨域问题_第1张图片

安装完成之后,打开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)控制器级别

Asp.Net Core 2.1 跨域问题_第2张图片

(2)Action级别

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

你可能感兴趣的:(Asp.Net,Core)