netcore3.0配置跨域


netcore3.0框架已集成了Microsoft.AspNetCore.Mvc.Cors包,因此不需要单独引用。

ConfigureServices中添加Cors策略服务

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

在Configure中添加到中间件中

  app.UseCors("AllowAllOrigins");

【注:策略名可以任意自定义,但是前后必须对应,当然可以设置多个策略;注意中间件放置的位置,在app.UseRouting()和app.UseEndPoints()之间】

》》》你以为这样就结束了吗?运行起来发现报错了:

 

原因是新版的Cors中间件已经阻止使用允许任意Origin,也就是说即使你配置了AllowAllOrigin()也不会生效。解决办法是使用WithOrigins进行设置:

【注:URL地址最后不能添加'/',如果以'/'终止,比较将返回false并且不返回任何标头】

builder.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(new []{"http://localhost:5000"});


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM