Angular.js说自定义HTTP响应头是null

Saw*_*oes 7 javascript angularjs

POST的回调函数为我的自定义HTTP标头返回null X-Auth-Token.Chrome正在显示正确的POST响应标头,但Angular.js不是.

Angular唯一返回的是Cache-Control和Content-Type.其他一切都显示为null.

这是我的CoffeeScript显示我是如何调用它的:

.factory 'loginFactory', ($rootScope, $http, $resource) ->
    $resource '/api/auth/login',
        email: '@id'
        password: '@id'

.controller 'userController', ($scope, $state, $http, loginFactory, userService) ->
    $scope.validationError = false
    $scope.user =
        email: ''
        password: ''

    $scope.loginUser = ->
        loginFactory.save $scope.user, (u, headers) ->
            console.log headers('X-Auth-Token')
        .$promise.then (response) ->
            unless response.error
                userService.login($scope.user.email, $scope.user.password)

                unless userService.redirIfLoggedIn()
                    $scope.validationError = true
Run Code Online (Sandbox Code Playgroud)

我也试过运行早期版本的Angular 1.3.x,那些也有同样的问题.

为什么Angular只在我提出请求时返回这两个标题?

Saw*_*oes 5

感谢这个解决方案转到@dbugger,他评论了我需要的答案:

看起来服务器需要授予查看标头的权限.看看这个:使用$ http的Angularjs时读取响应头

在本地域之外使标头可用的正确方法是Access-Control-Expose-Headers在您的网络服务器上设置:.在这种特殊情况下,你会把X-Auth-Token.