Заголовки перехватчиков $http ответов

Я отправляю пользовательский заголовок с сервера в ответ. В ответном перехватчике $http я хочу получить этот заголовок, но единственным заголовком, который я мог получить, является заголовок Content-type. Как я могу решить свою проблему?

Часть моего перехватчика $http:

response: function (response) {
            var AuthToken = response.headers('AuthToken');
            return response || $q.when(response);
        },

AuthToken - undefined.

Ответ 1

Это проблема CORS.

Ответ должен включать Access-Control-Expose-Headers список конкретных заголовков, которые вы хотите использовать.

например. Access-Control-Expose-Headers: AuthToken, AnotherCustomHeader

В зависимости от настройки вашего сервера это можно установить на весь сайт, используя файл .htaccess(Apache)

<IfModule mod_headers.c>
Header set Access-Control-Expose-Headers AuthToken,AnotherCustomHeader
</IfModule>

Или задать для каждого запроса код сервера (php)

header('Access-Control-Expose-Headers: AuthToken, AnotherCustomHeader');

Ответ 2

@slamborne, звучит хорошо. Для .Net

 <system.webServer>
  <httpProtocol>
      <customHeaders>
         <add name="Access-Control-Expose-Headers" value="AuthToken"/>
      </customHeaders>
    </httpProtocol>
 </system.webServer>