Я пытаюсь создать вызов с помощью AngularJS v1.3.15 в ASP.NET WebAPI (последний из Nuget), чтобы получить список клиентов. Я могу успешно аутентифицировать и вернуть токен. Я добавляю токен в заголовок Аутентификация, но когда я делаю вызов, он получает ответ, говорящий, что заголовок Аутентификации отсутствует.Заголовок заголовка AngularJS WebApi, похоже, не проходит
Угловой вызов после того, как я получаю маркер выглядит следующим образом
$scope.baseUrl = "http://localhost:7800/";
$http({
method: 'GET',
url: $scope.baseUrl + 'customer',
headers: {
'Authorization': $scope.token
}})
Я также попытался использовать angularjs $ ресурсосберегающим
return $resource($scope.baseUrl + 'customer', { }, { 'get': { method: 'GET', isArray: true, headers: { 'Authorization': $scope.token } } });
В методе WebApiConfig Регистрация У меня есть следующие настройки
var cors = new EnableCorsAttribute("*","*","*");
config.EnableCors(cors);
in DelegatingHandler Я проверяю заголовок авторизации как так
var authHeader = request.Headers.Authorization;
Из Углового приложения оно всегда равно нулю. Если я запустил чек из Fiddler и PostMan, я получаю заголовок авторизации просто отлично.
Когда я нажимаю F12 от Chrome и посмотрите на заголовок запроса эти результаты
OPTIONS /customer HTTP/1.1
Host: localhost:7800
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://localhost:63342
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2376.0 Safari/537.36
Access-Control-Request-Headers: accept, authorization
Accept: */*
Referer: http://localhost:63342/Test/index.html
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
При нажатии клавиши F12 в вашем браузере и перейдите на вкладку сети делает запрос показать ожидаемый заголовок? – Cerad
Нет, его нет, обновился вопрос - заголовок запроса chrome – Chadit
Итак, вы знаете, что проблема на стороне клиента. Теперь выполните поиск перехватчиков $ http, и вы найдете несколько сотен примеров того, как добавить заголовок проверки подлинности в ваш запрос. Также похоже, что у вас есть несколько запросов CORS (запросы на кросс-поиск), поэтому вы можете столкнуться с проблемой там. Но первым первым шагом является отправка заголовка. – Cerad