Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS可以';无法从NodeJS服务器读取响应HTTP头_Javascript_Angularjs_Node.js_Web - Fatal编程技术网

Javascript AngularJS可以';无法从NodeJS服务器读取响应HTTP头

Javascript AngularJS可以';无法从NodeJS服务器读取响应HTTP头,javascript,angularjs,node.js,web,Javascript,Angularjs,Node.js,Web,我目前正在尝试在NodeJS服务器和AngularJS客户端之间进行基于令牌的身份验证 换句话说:服务器生成令牌,在http头中发送给客户端,客户端接收并设置要在下一个请求(在http头中)中发送的令牌,当请求到达服务器时,将检查它是否包含以前发送的令牌。重复一遍 问题是我无法从AngularJS读取标题,尽管我可以通过Chrome的控制台看到标题在响应中被成功设置 到目前为止,我有一个AngularJS拦截器(我被告知我应该这么做),如下所示: angular .module('inj

我目前正在尝试在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,我有点迷路了。希望我没有弄糟一些基本的东西


谢谢。

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

$http.get("your URL",)
      .success(function (data,status, headers, config) {
        console.log(headers('Content-Encoding'));
      })
      .error(function (error) {
          canceller.reject(error);
      });
}
在回调中,您将收到来自服务器的响应以及其他详细信息,并且您可以像上面一样使用头

我希望它能帮助你。
谢谢

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

$http.get("your URL",)
      .success(function (data,status, headers, config) {
        console.log(headers('Content-Encoding'));
      })
      .error(function (error) {
          canceller.reject(error);
      });
}
在回调中,您将收到来自服务器的响应以及其他详细信息,并且您可以像上面一样使用头

我希望它能帮助你。
谢谢

看来

response
为了

成功了


我不知道为什么会发生这种情况。

看来情况正在改变

response
为了

成功了


我不知道为什么会发生这种情况。

这不是提出一个唯一的请求吗?或者,这允许我截取到客户端的每个响应吗?您可以为请求创建一个全局服务,并在每次请求服务器时使用该服务。例如module.factory(“deferredService”、['$http',function($http){var service={};service.get=function(url){$http.get(url).success(function(数据、状态、标题、配置){console.log(标题('Content-Encoding'));}.error(函数(error){canceler.reject(error);});}返回服务;}])将此服务包含在角度控制器中,并像deferredService.get(“您的URL”)一样调用。然后(函数(响应){ });感谢您的帮助,感谢您,我能够验证邮件头是否正确到达服务器。我将尝试实现您刚才告诉我的内容,看看它是否修复了剩余的错误。这不是要发出一个唯一的请求吗?或者这允许我截获到客户端的所有响应吗?您可以发出global服务请求,并在每次请求类似服务器的module.factory(“延迟服务”['$http',函数($http){var service={};service.get=function(url){$http.get(url).success(函数(数据、状态、标题、配置){console.log(标题('Content-Encoding');}).error(函数(error){canceler.reject(error);});}返回服务;}]);将此服务包含在角度控制器中,并像deferredService.get(“您的URL”)一样调用。然后(函数(响应){});感谢您的帮助,感谢您,我能够验证邮件头是否正确到达服务器。我将尝试实现您刚才告诉我的内容,看看它是否修复了剩余的错误。您确定打印的响应正确吗?是的,我回答了我自己的问题,经过数小时的研究,我找到了answer在另一个stackoverflow线程上。你确定打印的是正确的响应吗?是的,我回答了下面我自己的问题,经过几个小时的研究,我在另一个stackoverflow线程上找到了答案。