Заголовок Access-Control-Allow-Origin отсутствует в запрошенном ресурсе даже после установки CORS - PullRequest
0 голосов
/ 06 мая 2020

Мне надоела ошибка CORS в. NET Приложение Core Web API. Я сделал все настройки, как мне кажется.

Вот что я сделал

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddCors();
        services.AddControllers();

    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseCors(options =>
            options.WithOrigins("http://localhost:4200/")
            .AllowAnyMethod()
            .AllowAnyHeader()
            .AllowAnyMethod());
        //app.UseCors(builder => builder
        //            .AllowAnyOrigin()
        //            .AllowAnyMethod()
        //            .AllowAnyHeader()
        //            .AllowCredentials());
        app.UseHttpsRedirection();

        app.UseRouting();

    }

Даже сейчас это вызывает следующую ошибку:

Доступ к XMLHttpRequest в ' https://localhost: 44331 / api / kip 'from origin' http://localhost: 4200 'заблокировано политикой CORS: заголовок' Access-Control-Allow-Origin 'не присутствует на запрошенном ресурсе.

Я вызываю его из Angular

Вот мой вызывающий скрипт

  getProjects() {
    let url:string=this.isServer?"http://localhost:51071/webservice1.asmx":"https://localhost:44331";
    console.info(url);
    return this.client.get(url+'/api/kip', {
      withCredentials: true,
      responseType: 'json'
    });
  }

Также я установил точку останова на последняя строка API перед возвратом, она доходит до нее без каких-либо проблем. Поэтому после вызова return он вызывает ошибку. Также я пробовал API отдельно, который возвращает JSON.

Вот мой контроллер.

    // GET: api/Kip
    [HttpGet]
    public KipProjects Get()
    {
        KipProjects proj = new KipProjects();
        kip keyedin = new kip();
        proj=keyedin.getKeyedinReport();

        return proj;
    }

1 Ответ

0 голосов
/ 14 мая 2020

См. документ :

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

Так что попробуйте options.WithOrigins("http://localhost:4200")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...