찾다

 >  Q&A  >  본문

angular.js - 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

phpcn_u1582phpcn_u15822744일 전576

모든 응답(2)나는 대답할 것이다

  • 阿神

    阿神2017-05-15 17:09:10

    액세스 제어 요청 헤더

    프리플라이트 요청 시 이 헤더 정보를 사용하여 실제 요청에 포함될 사용자 정의 헤더 정보를 서버에 알려주십시오. 여러 개가 있는 경우 쉼표로 구분할 수 있습니다.

    액세스 제어 요청 헤더: <필드 이름>[, <필드 이름>]*

    회신하다
    0
  • 黄舟

    黄舟2017-05-15 17:09:10

    Google에서 검색한 결과 다른 사람들도 같은 문제가 발생했다는 것을 알았습니다. 누군가 답변을 주셨는데요, 의외로 서버와 관련이 있는 것 같습니다. Angular가 원래의 교차 요청 방식을 사용하고 있어서 서버가 이를 지원하지 않는다고 합니다. http-server0.90에서 실행 중인데 이 문제가 발생합니다. 모든 파일을 tomcat에 복사하면 문제가 사라질 것입니다. 다른 서버 소프트웨어를 사용하면 해결될 수도 있습니다.

    회신하다
    0
  • 취소회신하다