aspnetcore在使用拦截器【无论是官方的filter还是第三方封装的】后,跨域中间件Cors会失去效果。
第一种方法在注入拦截器里面也载入跨域中间件
.AddMvc(options =>
{
#region 拦截器配置
options.Filters.Add(new CorsAuthorizationFilterFactory("SignalRCore"));
});
允许所有访问的跨域中间件的写法
services.AddCors(options =>
{
options.AddPolicy("SignalRCore",
policy => policy.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
})
第二种方法需要在返回信息的头里面添加手动添加跨域允许
Access-Control-Allow-Origin=* (添加在header里面,*可以替换成对方的域名)
已官方的filter拦截器为例:
这里我只在执行前拦截去添加了。因为所有的拦截这一步是肯定要走的。在这添加了即可