CORS: Ответ на предполётный запрос не проходит проверку контроля доступа - PullRequest
0 голосов
/ 18 апреля 2019

Проблема CORS, которую он показывает:

ОПЦИИ https://dev -01-api-apptracker2 / Admin 401 (Несанкционированный)

Доступ к XMLHttpRequest на 'https://dev -01-api-apptracker2 / Admin 'from origin' https://dev -01-web-apptracker2 'заблокировано политикой CORS: Ответ на предпечатный запрос не прошелпроверка контроля доступа: на запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Но я думаю, что уже добавил заголовок «Access-Control-Allow-Origin»: «*» вМой AJAX-код, и попробовать много способов, чтобы решить эту проблему CORS, я устанавливаю dataType: 'json', crossDomain: true и withCredentials: true, а также добавить другой домен происхождения.Но я все еще получаю ошибку.Я понятия не имею, что не так с этим, кто-нибудь может мне помочь.Спасибо !!

AddAdmin: function (callback, UserId) {
        $.ajax({
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'Access-Control-Allow-Headers': 'origin, X-Custom-Header',
                'Access-Control-Allow-Method': 'POST',
                'Access-Control-Allow-Origin': '*'
            },
            contentType: 'application/json',
            method: "POST",
            url: Services.APIBaseUrl + "Admin",
            dataType: 'json',
            crossDomain: true,
            data: JSON.stringify(UserId),
            xhrFields: {
                withCredentials: true
            },
            complete: function (data) {
                callback(data);
            }
        });
    },
public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy("APIAllowedOriginsPolicy",
                builder =>
                {
                    builder.WithOrigins("https://dev-01-web-apptracker2",
                        "http://localhost:31474")
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });
            services.Configure<MvcOptions>(options =>
            {
                options.Filters.Add(new CorsAuthorizationFilterFactory("APIAllowedOriginsPolicy"));
            });
            services.AddAuthentication(IISDefaults.AuthenticationScheme);

            // Add framework services.
            services
                .AddMvc()
                .AddJsonOptions(options =>
                {
                    options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                });
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {

            //app.UseCors("APIAllowedOriginsPolicy");

            app.UseCors(builder =>
                builder.AllowAnyOrigin()
                        .AllowAnyMethod()
                        .AllowAnyHeader()
                        .AllowCredentials()
            );

            app.UseMvc();
        }

1 Ответ

0 голосов
/ 23 апреля 2019

Я выяснил проблему, которая возникла из-за проблемы с проверкой подлинности IIS. Необходимо разрешить как аутентификацию Windows, так и анонимность для CORS.

...