angular $http拦截器 headers注入token

拦截器服务

.factory('sessionInjector', function ($rootScope) {
    // Service logic
    var sessionInjector = {
      request: function(config) {
        if ($rootScope.sysuser) {
          config.headers['token'] = $rootScope.sysuser.token;
          
        }
        return config;
      }
    };
    return sessionInjector;
  });

结果:
图片描述

我写了个拦截器headers注入token,但是怎么注入了heads的Access-Control-Request-Headers的呢?

注入拦截器是这样写的:

$httpProvider.interceptors.push('sessionInjector');

应该没错吧?不知道哪里出问题了

后面测试了下不用拦截器直接注入,和在单个请求中加header都一样跑去了heads的Access-Control-Request-Headers

阅读 5.6k
2 个回答

Access-Control-Request-Headers

在发出预检请求时带有这个头信息,告诉服务器在实际请求时会携带的自定义头信息.如有多个,可以用逗号分开.

Access-Control-Request-Headers: <field-name>[, <field-name>]*

新手上路,请多包涵

我遇到了同样的问题,google了一下,发现也有别人遇到了这个问题。有人给出了解答,出乎意料的是,这根服务器相关,据称angular使用了什么原始交叉的请求方式,导致服务器不支持。我是在http-server0.90上运行,出现这个问题的,把所有的文件拷贝到tomcat下,就没有这个问题了,建议你换一个服务器软件试试,没准就解决了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进