dotnet core 之 CORS使用示例
程序员文章站
2022-04-09 08:33:45
这里列举几个经过验证的可用的CORS使用示例, 方便在需要的时候可以直接使用 示例1 这种比较常见,即在ConfigureServices中添加中间件及定义其策略;而在Configure中把中间件设置到管道中 示例2 注意,这个示例中,直接在Configure中的app.UseCors中设置的跨域的 ......
这里列举几个经过验证的可用的cors使用示例,
方便在需要的时候可以直接使用
示例1
#region snippet2 public void configureservices(iservicecollection services) { services.addcors(options => { options.addpolicy(myallowspecificorigins, builder => { //1.可用 //builder.withorigins("http://example.com", // "http://www.contoso.com", // "http://localhost:65317"); builder.allowanyorigin(); //2.可用 }); }); services.addmvc().setcompatibilityversion(compatibilityversion.version_2_2); } #endregion #region snippet3 public void configure(iapplicationbuilder app, ihostingenvironment env) { if (env.isdevelopment()) { app.usedeveloperexceptionpage(); } else { app.usehsts(); } app.usecors(myallowspecificorigins); app.usehttpsredirection(); app.usemvc(); } #endregion
这种比较常见,即在configureservices中添加中间件及定义其策略;而在configure中把中间件设置到管道中
示例2
public void configureservices(iservicecollection services) { //services.addcors(); //经试验,此句加或者不加,都是可以的 services.addmvc().setcompatibilityversion(compatibilityversion.version_2_2); } #region snippet2 public void configure(iapplicationbuilder app, ihostingenvironment env) { if (env.isdevelopment()) { app.usedeveloperexceptionpage(); } else { app.usehsts(); } // shows usecors with corspolicybuilder. app.usecors(builder => { builder.withorigins("http://example.com", "http://www.contoso.com", "https://localhost:44375", "http://localhost:65317"); }); app.usehttpsredirection(); app.usemvc(); } #endregion
注意,这个示例中,直接在configure中的app.usecors中设置的跨域的一些要求,这种写法经试验也是可以的
示例3
public void configureservices(iservicecollection services) { services.addcors(options => { options.adddefaultpolicy( builder => { builder.withorigins("http://example.com", "http://www.contoso.com", "http://localhost:65317"); }); options.addpolicy("anotherpolicy", builder => { builder.withorigins("http://www.contoso.com", "http://localhost:65317") .allowanyheader() .allowanymethod(); }); }); services.addmvc().setcompatibilityversion(compatibilityversion.version_2_2); } public void configure(iapplicationbuilder app, ihostingenvironment env) { if (env.isdevelopment()) { app.usedeveloperexceptionpage(); } else { app.usehsts(); } app.usehttpsredirection(); app.usemvc(); }
经试验发现,像这种没有在configure中使用app.usecors的,应该都属于局部设置跨域的,需要在相应的controller或者action方法上,使用注解:
//[enablecors("anotherpolicy")] //这种事有名称的策略的注解添加 [enablecors()] //这种是模式策略的注解添加 [route("api/[controller]")] [apicontroller] public class valuescontroller : controllerbase
注意,即使是默认的策略也是需要使用注解进行声明的,否则会跨域错误。默认的策略只是说不用在注解中声明策略名而已
推荐阅读
-
Android开发之CheckBox的简单使用与监听功能示例
-
python模块之StringIO使用示例
-
Android开发之RadioGroup的简单使用与监听示例
-
php设计模式之单例模式使用示例
-
php之Smarty模板使用方法示例详解
-
使用VUE+iView+.Net Core上传图片的方法示例
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之七使用JWT生成Token(个人见解)
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之十一Swagger使用一
-
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
-
mysql触发器之创建使用触发器简单示例