在API响应中设置Header中的标记

时间:2016-06-30 07:50:53

标签: angularjs http-headers

我正在Angular中创建一个登录页面。登录API调用(POST)后,我得到一个令牌作为响应。在控制器中,我试图在" common"中设置此令牌。标题,以便我可以使用它来授权所有进一步的API调用:

LoginSrv.authenticate($scope.credentials).then(
        function(data){
            $http.defaults.headers.common.Authorization = data.token;
            $state.go('nextpage');
        }
);

下一页还有一个POST API调用。在调用我检查调试器中的请求标头之后,我在标头中看到该标记。此响应再次导航到第三页(这次我没有再次设置标题)。在第三页,当我调用API(GET或POST)时,"授权"这次在标题中不可用。我不确定这是如何自行消除的。

1 个答案:

答案 0 :(得分:1)

鉴于您的第三个请求是跨域,您的服务器似乎没有正确响应预检浏览器OPTIONS请求,该请求用于在发送请求之前检查可用的方法等。这不是一个角度问题。一种解决方案是将服务器配置为正确响应此OPTIONS请求。此SO链接(在之前的评论中提供)更详细地解释了潜在解决方案AngularJS performs an OPTIONS HTTP request for a cross-origin resource