User-8621695 Ответов: 1

Проблема CORS при вызове WEB API с помощью angular js


Я создаю демонстрационное приложение, которое используется для отображения сведений о человеке в пользовательском интерфейсе с помощью web api и angular JS. Мой код работает нормально, если я буду запускать через хром "chrome.exe --пользователь-данные-реж="сессии Дев C:/Chrome" --отключить-веб-безопасности", однако это не работает для нормального хром/IE. Я сделал некоторые отладки и обнаружил, что, кажется, проблема ПДБС. Я также пытался включить CORS в конце api, но это не сработало для меня. Может кто-нибудь, пожалуйста, помочь мне заставить его работать. Заранее спасибо. Ниже приведен фрагмент моего кода:

Веб-API:
публичный класс HomeController : ApiController
{
public HttpResponseMessage GetPersonDetails()
{
var person = новый список<person>
{
новый человек {Id=1, адрес="Пуна", имя="Тест1"},
новый человек {Id=2, Адрес="Пуна", имя="Тест2"},
новый человек {Id=3, Адрес="Пуна", имя="Тест3"},
новый человек {Id=4, адрес="Пуна", имя="Тест4"}
};
запрос на возврат.CreateResponse(HttpStatusCode.Хорошо, человек);
}
}

угловой код:
var appModule = angular.module("MyApp", []);

appModule.controller('getUserDetailsController', function ($scope, $http) {
           $http({
               method: 'GET',
               url: 'http://localhost:61896/api/Home/GetPersonDetails',
               headers: {

                   'Access-Control-Allow-Headers': '*',
                   'Access-Control-Allow-Methods': '*',
                   'Access-Control-Allow-Origin': '*'

               },
               contentType:'text/plain; charset=UTF-8'
           }).then(function (response) {

               $scope.objUserDetails = response.data;


           });
       });


Что я уже пробовал:

Я попытался включить CORS в конце api, а также попытался отправить заголовок из js, но у меня ничего не получилось.

1 Ответов

Рейтинг:
1

Bohdan Stupak

Если вы пытались включить CORS на стороне API и это не сработало то возможная причина заключается в том что вы запускаете свою страницу локально т. е. через file:// вместо http://
Это был случай для меня однажды, и я решил его, развернув свое приложение с помощью пакет http-сервера