2017-12-09 4 views
1

새로운 각도 및 나는 몇 가지 이유로 서버 측 인증을 위해 헤더를 설정해야합니다. Ang 4와 HttpClient Module을 '@ angular/일반/HTTP '각도 4 HttpClient 모듈을 사용하여 머리글 설정

ARC

난 내 프로젝트를 실행하고 난 (토큰) 함수 getUserByToken를 호출

import { Injectable } from '@angular/core'; 
import { User } from '../../models/user'; 
import { HttpClient, HttpHeaders, HttpRequest } from 
'@angular/common/http'; 
import { Observable } from 'rxjs'; 
import { Globals } from '../../utils/global'; 
import { Converters } from '../../utils/converters'; 


@Injectable() 
export class AuthService { 
getUserByToken(token: string): any { 
    let headers = new HttpHeaders(); 
    headers.append('Content-Type', 'application/json'); 
    headers.append('authorization', 'Bearer ' + token); 

    console.log(headers); 

    return new Promise((resolve, reject) => { 
     this.http.get(this.global.urls['info'], { headers: headers }).subscribe((data) => { 
     if (data != null) { 
      this.converter.userJsonToObject(data).then((data: User) => { 
      this.setCurrentUser(data); 
      this.persistToken(data.token); 
      resolve(data); 
      }); 
     } else { 
      reject('This user is not defined'); 
     } 
     }, (err) => { 
     reject(err); 
     }); 
    }); 

    } 
내 AuthService 클래스

이며, 서버 콘솔에는 토큰이 전송 없다고 내게 말했다. 엔드 포인트가 ARC에서 완벽하게 작동하므로 문제가 클라이언트 측에 있습니다. 누구든지이 문제를 해결할 수 있습니다. : D

그것은 유형 immutable Map이다
+0

'A'가 대문자이어야하는'인가'입니다. 또한'append' 대신'headers.set()'을 사용하려고 시도합니다. – Aravind

+0

내 스크린 샷을 보면 엔드 포인트가 '인증'테이핑을해도 잘 작동합니다. 어쨌든 문제는 헤더를 설정하는 방식입니다. header.set()을 사용하더라도 여전히 작동하지 않습니다. –

+0

[Angular \ [4.3 \] Httpclient가 헤더를 보내지 않습니다.] (https://stackoverflow.com/questions/45286764/angular-4-3-httpclient-doesnt-send-header) –

답변

3

그래서 당신은

let headers = new HttpHeaders().set('Content-Type', 'application/json') 
           .set('authorization', 'Bearer ' + token); 

또는

으로 일을해야한다, 그래서 당신은 객체를 초기화하는 새로운 값을 할당하면 당신은 오타에가있는
let headers = new HttpHeaders().set('Content-Type', 'application/json'); 
headers = headers.set('authorization', 'Bearer ' + token); 
+0

감사합니다. 당신이 생성자에 헤더를 넣어해야하므로 HttpHeaders 불변이다 내 문제를 해결했습니다. –