1.在 Startup
类的ConfigureServices
方法里,添加如下代码:
services.AddCors(option=>
option.AddPolicy("cors", policy =>
policy.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
.WithOrigins(new []{"http://123.xyz.com","http://123.sogo.com"})));
.WithOrigins里面的参数必须加“http://”,否则不生效
注意,不要按照如下方式写:
services.AddCors(option=>
option.AddPolicy("cors", policy =>
policy.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
.AllowAnyOrigin()));
因为新版的CORS中间件已经阻止使用允许任意Origin,因此 AllowAnyOrigin
设置了也不会生效
2.配置CORS中间件
(1)在 Startup
类的Configure
方法里,添加如下代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//位置稍微靠上一些,必须在app.UseMvc()之前如果有app.UseMvc()的话
app.UseCors("cors");
app.UseMvc();
}
(2)在 Startup
类的Configure
方法里,添加如下代码
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//未使用刚才设置的policy名称cors
app.UseCors();
app.UseMvc();
}
在对应的方法或者控制器前加[EnableCors("cors")],如下:
//控制器
[EnableCors("cors")]
public class LoginController : Controller
{
public string Str1(){}
public string Str2(){}
}
//方法
public class LoginController : Controller
{
[EnableCors("cors")]
public string Str(){}
}