Iam使用asp.net core 2.1。我正在尝试关闭电源。我尝试了不同的代码。我在startup.cs Configure
方法中添加了以下代码,该代码无效:
app.UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());
然后,我还在startup.cs ConfigureService方法中添加了以下代码:
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
});
});
它仍然无法正常工作,但出现了Cors错误。我要求您是否遇到相同的问题
注意:我正在项目中使用JWT。每当每个用户登录时,程序都会向该用户返回一个jwt。前端是在Angular 6.0.3中实现的。
JWT Helper方法
public static class JwtExtension
{
//handle errors
public static void AddApplicationError(this HttpResponse response, string message)
{
// Jwt operation add to the header
response.Headers.Add("Application-Error", message);
response.Headers.Add("Access-Control-Allow-Origin", "*");
response.Headers.Add("Access-Control-Expose-Header", "Application-Error");
}
}
我得到的错误
Access to XMLHttpRequest at 'http://localhost:52824/api/auth/panelInfo' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
已更新: 我解决了,CORS中间件必须在您要支持跨域请求的应用程序中的所有定义端点之前(例如,在调用UseMvc之前)
在void configure方法中(在startup.cs中)
// Cors Middleware
app.UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());
app.UseAuthentication();
app.UseMvc();