添加Authorization标头时出现CORS错误



我正在构建一个Angular应用程序,它调用.Net Core webapi。我已经能够设置它,以便能够使用CORS成功回电并获得响应。但是,当我将Authorization标头添加到Angular拦截器时,它会抛出以下错误。

错误访问'XMLHttpRequesthttp://localhost:57120/api/values'来自原点'http://localhost:4200'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在"access control Allow Origin"标头。

C#启动-配置方法

app.UseCors(
options =>
{
options.WithOrigins("http://localhost:4200");
options.WithHeaders("Access-Control-Allow-Credentials: true"); 
options.AllowCredentials();
}
);

角度HttpInterceptor

const token =  localStorage.getItem('access-token');

const clone = request.clone({
headers: request.headers.set("Authorization", "Bearer " + token),
withCredentials: true,

});
return next.handle(clone);

您的启动配置错误。尝试使用命名的cors策略并更改您的应用程序。UserCors到anotner语法:

app.UseCors("CorsPolicy") 
services.AddCors(opt =>  opt.AddPolicy("CorsPolicy", c =>
{ 
c.AllowAnyOrigin()
.AllowAnyHeader()
.AllowCredentials()
.AllowAnyMethod();
}));

如果它有效,那么您可以用选项替换c.AllowAnyOrigin((。WithOrigins(";http://localhost:4200"(;

相关内容

  • 没有找到相关文章

最新更新