webapi后端解决跨域问题

vue 使用axios请求,后台进行跨域处理
作者:秋名
撰写时间:2020 年 8 月 19 日

什么是跨域问题呢?
在这里插入图片描述

后台地址44310:https://localhost:44310/api/Products/Getproducts
前端地址8080:http://localhost:8080/#/
两者的端口不一致,浏览器就会实行保护,不允许跨域到别的网站去请求,为了允许别人过来访问我的数据,所以就产生了跨域

解决办法1:vue 使用axios请求和vue-cli这种脚手架工具实现跨越传输
解决办法2:使用CORS,服务器可以在显式允许某些跨域请求时拒绝其他跨域请求

 public void ConfigureServices(IServiceCollection services)
        {
            var conSer=Configuration.GetSection("Constr");
            SqlHelper.Constr = conSer.Value;
            //Cors:跨域资源共享,允许服务器放宽同源策略。使用CORS,服务器可以在显式允许某些跨域请求时拒绝其他跨域请求。CORS是相比其他跨域技术(比如JSONP)更安全、更灵活
            //AddPolicy 使用政策
            //AllowAnyOrigin 允许任何来源
            //AllowAnyHeader允许任何的Header头部标题 有关头部标题如果不设置就不会进行限制
            //AllowAnyMethod允许跨域策略允许所有的方法:GET/POST/PUT/DELETE 等方法 如果进行限制需要 AllowAnyMethod("GET","POST") 这样来进行访问方法的限制
            
            services.AddCors(o => o.AddPolicy("any", p => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()));
            services.AddControllers();
        }
        
        
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();
            
             //使用跨域
            app.UseCors();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
        
  //Route:路由
    //api/控制器/方法名
    //api/Products/Getproducts
    
    [EnableCors("any")]//调用跨越的政策
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class ProductsController : ControllerBase
    {
        public List<Products> Getproducts() {
            List<Products> productList = Products.GetProductList();
            return productList;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值