2017-12-28 5 views
0

가 여기 내 각 방법요청 (401)

getGiftList(url: string){ 
let q = this.baseUrl + url; 
let headers = new HttpHeaders(); 
let authToken = 'Bearer ' + this.authService.currentUser.token; 

console.log(q); //Log the url ... 
console.log(authToken); Log the token ... 

headers.set('Authorization', authToken) 

return this.http.get(q, { 
    observe: 'response' 
    ,headers: headers 
}) 

}

의 반환 내가로부터 요청을 할 때의 Asp.net 코어 방법

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] 
public class GiftController : Controller 
{ 
    [HttpGet("api/giftsByGiver/{email}")]   
    public IActionResult getGiftBasicRecordsByGiver(string email, int cpg = 1) 
    { 
     // 
    } 
} 

입니다 내 각 코드, 401 오류가 발생합니다. 그러나 필자가 Postman에 기록한 것과 동일한 값을 복사/실행하면 올바른 결과를 얻게됩니다.

내가 누락 된 항목이 있습니까?

+0

우편 발송인에 승인 헤더가 있는지 여부를 확인 했습니까? 그들은주의하기 어려울 수 있습니다. 여러분은 머리말 탭 –

+0

@PaulDegnan을 열어야합니다. 개발을 위해서 그리고 나는 여전히 배우기 때문에, 나는'origin, method 및 header를 허용하는 정책을 설정했습니다 '. – Richard77

답변

3

HttpHeaders을 돕는

덕분에 불변입니다. set()을 호출해도 변경되지 않습니다. HttpHeaders의 새 인스턴스를 반환합니다. 당신은 당신의 명령의 순서를 변경한다면 당신은

headers = headers.set('Authorization', authToken); 

또는 간단해야합니다

const authToken = 'Bearer ' + this.authService.currentUser.token; 
const headers = new HttpHeaders().set('Authorization', authToken); 

당신은 당신의 가정을 확인해야합니다 : 당신의 브라우저 개발 도구의 네트워크 패널을 열고 무엇인지 확인 당신이 보내는 것은 당신이 보내는 것이라고 생각합니다.

+0

와우! 효과가있는 – Richard77

관련 문제