ASP.NET Core WebApi配置跨域

引言

当我们在项目的额开发过程中,使用到前后端分离,而不再是传统的MVC进行开发时,我们的WebApi项目默认是没有开启跨域的,因为浏览器安全性可防止网页默认同域策略。 同域策略可防止恶意站点从另一站点读取敏感数据。 有时,你可能允许其他站点你的应用进行跨域请求

一、开启跨域访问

这里只需要注意一下:必须将对的调用 UseCors 置于 UseAuthorization之前UseRouting 之后

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

            app.UseRouting();

            //启用跨域
            app.UseCors();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
    
    
                endpoints.MapControllers();
            });
        }

二、配置跨域规则

public void ConfigureServices(IServiceCollection services)
        {
    
    
            //配置跨域
            services.AddCors(options =>
            {
    
    
                options.AddPolicy("CorsPolicy", builder =>
                {
    
    
                    builder.AllowAnyOrigin() //允许所有Origin策略

                           //允许所有请求方法:Get,Post,Put,Delete
                           .AllowAnyMethod()

                           //允许所有请求头:application/json
                           .AllowAnyHeader();
                });
            });
            services.AddControllers();
        }

二、远程跨域访问

    [Route("api/[controller]")]
    [ApiController]
    [EnableCors("CorsPolicy")] //允许跨域
    public class ValuesController : ControllerBase
    {
    
    
        // GET: api/<ValuesController>
        [HttpGet]
        public IEnumerable<string> Get()
        {
    
    
            return new string[] {
    
     "values1", "values2" };
        }
    }

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42799562/article/details/115447589
今日推荐