AngularJS无法从NodeJS服务器读取响应HTTP头

时间:2016-11-16 09:02:14

标签: javascript angularjs node.js web

我目前正在尝试在NodeJS服务器和AngularJS客户端之间进行基于令牌的身份验证。

换句话说:服务器生成令牌,在http头中发送给客户端,客户端接收并设置要在下一个请求(在http头中)发送的令牌,当请求到达服务器时它检查它是否包含先前发送的令牌。重复。

问题是我无法从AngularJS读取标题,即使我可以通过Chrome控制台看到响应中已成功设置标题。

到目前为止,我已经得到了一个AngularJS拦截器(我已经告诉过我应该这样做):

angular
    .module('injector', [])
    .factory('sessionInjector', function(){

      var injectedSession = {
          response: function(res) {

                console.log("RESPONSE: " + JSON.stringify(res.config.headers));

              return res;
          };

      return injectedSession;
});

这是输出:

RESPONSE: {"Accept":"application/json, text/plain, */*"}

我刚刚开始使用AngularJS而且我有点失落。希望我没有把一些非常基本的东西弄得一团糟。

谢谢。

2 个答案:

答案 0 :(得分:2)

当您点击http请求时,它看起来如下所示: -

$http.get("your URL",)
      .success(function (data,status, headers, config) {
        console.log(headers('Content-Encoding'));
      })
      .error(function (error) {
          canceller.reject(error);
      });
}

您将收到来自服务器的回复以及回调中的其他详细信息,您可以使用上面的标题。

我希望它会对你有所帮助。 感谢

答案 1 :(得分:0)

似乎正在改变

'response'

{{1}}

成功了。

我不知道为什么会这样。