.netcore 3.1 里webapi跨域请求在服务器上被拦截

qxyywy 2020-09-02 10:16:39
本地startup.cs里代码如下:
//允许跨域
services.AddCors(p =>
{
p.AddPolicy("vipxwkservice", option =>
{
var listorigins = Configuration.GetSection("SiteConfig").GetSection("Origins").Get<string[]>();
#if DEBUG
option.AllowAnyOrigin().AllowAnyMethod()
.AllowAnyHeader()
.WithExposedHeaders(VIPKeys.SESSION_CODE);
#else
option.WithOrigins(listorigins)
.AllowAnyMethod()
.AllowAnyHeader()
.WithExposedHeaders(Common.VIPKeys.SESSION_CODE);
#endif
});
});

app.UseCookiePolicy();
app.UseSession();
app.UseRouting();
app.UseCors("vipxwkservice");
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
//跨域需添加RequireCors方法,cors是在ConfigureServices方法中配置的跨域策略名称
endpoints.MapControllers().RequireCors("vipxwkservice");
});


"SiteConfig": {
"DomainModules": [ "User", "Application", "Admin" ],
"Origins": [
"http://localhost:50592",
"http://192.168.0.23:10030"
],
"AuthorizationConfig": {
"Audience": "abc",
"Issuer": "abc",
"Expires": 43200, //过期分钟数
"JwtSecurityKey": "www.abc.com@!##$%##" //密匙长度大于等于16位
}
}


以上代码在本机配置API为http://192.168.0.23:10031 ,web站点http://192.168.0.23:10030能够正常跨域请求,但安装到一个全新服务器windows2012R2上部署成功后,跨域请求一直被拦截。
响应头里一直没有
Access-Control-Allow-Origin
Access-Control-Expose-Headers


请教各位有经验的指点迷惑
...全文
1075 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
沫含天下 2020-09-02
  • 打赏
  • 举报
回复
这么写 试试
public class Startup
    {

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddMvc(options =>
            {

                options.Filters.Add<MyApiFilter>();

            });


            // 设置允许所有来源跨域
            services.AddCors(options => options.AddPolicy("CorsPolicy",
            builder =>
            {
                builder.AllowAnyMethod()
                    .AllowAnyHeader()
                    .SetIsOriginAllowed(_ => true) // =AllowAnyOrigin()
                    .AllowCredentials();
            }));

            // 使用跨域配置
            

        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseCors("CorsPolicy");

            ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");
            XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();
           
            app.UseEndpoints(endpoints =>
            {
                //全局路由配置
                endpoints.MapControllerRoute(name: "default",
                   pattern: "{controller=Index}/{action=Index}/{id?}"
                );
            });

           



        }

        
    }

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧