2015-04-28 2 views
0

Я пытаюсь создать вызов с помощью 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 
+1

При нажатии клавиши F12 в вашем браузере и перейдите на вкладку сети делает запрос показать ожидаемый заголовок? – Cerad

+0

Нет, его нет, обновился вопрос - заголовок запроса chrome – Chadit

+0

Итак, вы знаете, что проблема на стороне клиента. Теперь выполните поиск перехватчиков $ http, и вы найдете несколько сотен примеров того, как добавить заголовок проверки подлинности в ваш запрос. Также похоже, что у вас есть несколько запросов CORS (запросы на кросс-поиск), поэтому вы можете столкнуться с проблемой там. Но первым первым шагом является отправка заголовка. – Cerad

ответ

0

Фиксированные мой вопрос, после некоторых поисков я обнаружил, что OPTIONS, кажется, не поддерживается из коробки. Я обнаружил, что если я добавить NuGet Microsoft.Owin.Cors пакет, а затем добавить

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

к startup.cs файл

Смежные вопросы