Я пытаюсь выключить Cors - PullRequest
0 голосов
/ 14 января 2019

Я использую ядро ​​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();
...