随笔 - 290  文章 - 10  评论 - 84  2

IE浏览器的Intranet局域网设置默认是可以跨域访问的.chrome就不可以.

这里说的跨域是指javascript代码不能跨域, 当然你在后端controller代码里用HttpClient.GetAsync(url) 这样去请求数据是不存在跨域问题的.

1. 在Startup.cs的ConfigureServices方法

public void ConfigureServices(IServiceCollection services)
{
  string[] origins = Configuration.GetValue<string>("CorsOrigin").Split(","); //从appsettings.json读取
  services.AddCors(c =>
    c.AddPolicy("AllowSpecificOrigin", policy =>
  {
    policy.WithOrigins(origins)
    .WithMethods("GET", "POST", "PUT", "DELETE");

  }));

}

2. 在startup.cs的Configure方法里

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseCors("AllowSpecificOrigin");
}

3. appsetting.json里增加一个

"CorsOrigin": "http://www.example1.com,http://www.example2.com",

 

posted on 2018-07-11 16:22  Gu  阅读(...)  评论(... 编辑 收藏