.NET Core — ошибка CORS даже после включения CORS

Я пытаюсь вызвать метод WebAPI для получения некоторых данных, но он выдает Cross-Origin Read Blocking (CORB) blocked cross-origin response https://localhost:44332/api/Controller/Action with MIME type text/html., хотя я включил CORS в своем методе ConfigureServices и использовал политику в методе Configure при запуске.

public void ConfigureServices(IServiceCollection services)
        {

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAll",
                    builder =>
                    {
                        builder
                            .WithOrigins("http://localhost:4200/")
                            .AllowAnyMethod()
                            .AllowAnyHeader()
                            .AllowCredentials();
                    });
            });

            services.AddMvc();
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            .....
            app.UseCors("AllowAll");
            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });


}

В чем может быть причина?


person Rakshith Murukannappa    schedule 15.07.2018    source источник
comment
Верен ли порт в localhost:4200? попробуй сменить порт на 44332   -  person Aman B    schedule 16.07.2018
comment
Иногда, когда происходит 500, вызов ajax по-прежнему вызывает ошибку cors.   -  person CRice    schedule 16.07.2018
comment
Ошибка указывает на запрос text/html. Должен ли это быть какой-то другой тип контента?   -  person Brad    schedule 16.07.2018
comment
@CRice верен, это, вероятно, происходит из-за того, что вы получаете сообщение об ошибке до того, как обработаете cors, возможно, вам не хватает регистрации в контейнере для инъекций Depency?   -  person johnny 5    schedule 16.07.2018
comment
@AmanB Порт правильный   -  person Rakshith Murukannappa    schedule 16.07.2018
comment
@CRice был прав, выброшенное исключение маскировалось как ошибка CORS. Странно, хотя   -  person Rakshith Murukannappa    schedule 16.07.2018


Ответы (2)


Итак, в основном, как прокомментировали CRice и johnny, Internal server error распространяется как ошибка CORS.

Поскольку рекомендуется обрабатывать все ошибки в приложении, это гарантирует, что 500 Internal Server Error останется неповрежденным даже в случае исключения и не будет маскироваться как ошибка CORS.

Это можно понять лучше здесь

person Rakshith Murukannappa    schedule 16.07.2018

Это может помочь,

Примечание. URL-адрес не должен содержать завершающую косую черту (/). Если URL-адрес заканчивается символом /, сравнение возвращает false и заголовок не возвращается.

person Theja Wijesiriwardane    schedule 25.01.2021