Вызов из Angular JS в web API ошибка: заголовок «Access-Control-Allow-Origin» содержит несколько значений, поэтому Origin не имеет доступа - PullRequest
0 голосов
/ 07 сентября 2018
  1. Элемент списка

У меня есть веб-API, развернутый в 'https://example.com/api/gd/alldata',, когда я запускаю его прямо из URL браузера, он показывает результат. но когда я вызываю его из другого приложения Angular JS, оно выдает ошибку ниже.

Ошибка:

Не удалось загрузить 'https://example.com/api/gd/alldata' Заголовок 'Access-Control-Allow-Origin' содержит несколько значений 'http://localhost:64000, http://localhost:64000, *', но разрешено только одно. Исходный код 'http://localhost:64000' поэтому не допускается.

Это мой новый сервис angularjs в другом приложении.

  var promise = $http({

        method: 'GET',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        url: "https://example.com/api/gd/alldata",
        //headers: headers, 
        headers: {
            'Access-Control-Allow-Origin': '*',
            'Content-Type': 'application/json',
        }
    })
        .then(function (response) {
            console.log(response.data)
            return response.data;
        },
        function (response) {
                return response.data;
            });

Ниже мой API-код уже развернут по некоторой ссылке,

я включил cors в webapiconfig и запись в файле startup.cs.

Файл Startup.cs

    app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

webapiconfig.cs

 config.EnableCors();

Подскажите, пожалуйста, где я делаю ошибку или что я пропускаю или делаю неправильно в моем коде.

1 Ответ

0 голосов
/ 07 сентября 2018

Поскольку вы размещаетесь в Azure и звоните с localhost (локальная среда разработки), вам потребуется обновить следующий параметр CORS в службе приложений Azure:

  1. Перейдите в службу приложений на https://portal.azure.com
  2. Поиск CORS (нажмите CTRL + /)
  3. Добавьте localhost:6400 или еще лучше * в поле Разрешенные источники
  4. Сохранить

enter image description here

...