Angular + .netcore 3.1 webapi在跨域时遇到的问题及解决方案

本文介绍了在前后端分离的项目中,由于Angular应用(端口4200)与IIS上的后端API(端口8080)之间存在跨域问题导致的错误。解决方法是在后端的WebAPI的Startup配置中添加跨域服务,允许来自特定源的跨域请求。通过设置`AddCors`策略,允许来自`localhost:4200`的请求,并启用所有头部和方法,同时允许凭据。在配置完成后,确保在应用程序中间件中使用该跨域策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前后端分离 ,关于跨域问题

1.我前端用的是angular占用端口是4200,后端在IIS上部署的端口是8080造成了跨域,报错

 

2.如何解决?

需要在web api中允许web api跨域访问,需要在StartUp的方法中添加跨域服务

            //跨域
            services.AddCors(options =>
            {
                //any为策略名称,后面在web api控制器中添加的跨域策略名称要与此一致
                options.AddPolicy("any", builder =>
                {
                    // 设定允许跨域的来源,有多个可以用','隔开
                    builder.WithOrigins("http://localhost:4201", "http://localhost:24661")
                    .AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials();
                    //任何来源
                    //builder.AllowAnyOrigin()
                    //.AllowAnyMethod()
                    //.AllowAnyHeader();
                });
            });

            //跨域
            //添加到app.UseRouting()和app.UseEndpoints()之间
            app.UseCors();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值