Я использую ядро asp.net 2.1. Я пытаюсь выключить cors. Я пробовал разные коды. Я добавил следующий код в метод 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();