如何在角度6中添加JWT

时间:2018-09-26 11:55:48

标签: angular angular-httpclient

我已添加如下所示的授权密钥

postrequest(callurl, input) {
const headers: any = new Headers;
headers.append('Content-type', 'application/json;charset=utf-8');
headers.append('Authorization', 'Bearer 
  '+localStorage.getItem("AuthTocken"));
return this._http.post(callurl, input, headers)
  .pipe(
    map((res: any) => {

      return res;
    }),
    retry(2),
    catchError(err => {
  })
 );
}

我没有发现任何错误,但是在标题

中找不到 Authorisation
  

角度 6

     从 @ angular / common / http

使用的

服务      

URL在邮递员中正常工作

我得到如下错误

  

http.service.ts:84后端返回了代码0,正文为:[object ProgressEvent]正文为:{“ headers”:{“ normalizedNames”:{},“ lazyUpdate”:null,“ headers”:{} },“ status”:0,“ statusText”:“未知错误”,“ url”:null,“ ok”:false,“名称”:“ HttpErrorResponse”,“ message”:“ Http失败响应(未知url) :0未知错误“,”错误“:{” isTrusted“:true}}   (匿名)@ http.service.ts:84   push ../ node_modules / rxjs / _esm5 / internal / operators / catchError.js.CatchSubscriber.error @ catchError.js:34

响应标题 enter image description here

2 个答案:

答案 0 :(得分:0)

它需要稍有不同的设置。

编辑:为了简洁

this.httpClient.post(URLs, { headers: new HttpHeaders({ 'Authorization': localStorage.getItem("token") }); })

通过,我意识到您在拼写授权错误。因此,它不会被视为标准标头。

答案 1 :(得分:0)

您必须使用Bearer而不是Token

headers.append('Authorisation', 'Bearer '+'localStorage.getItem("AuthTocken"));

标题对象是一个选项。 您必须以以下形式将标头作为参数传递

this.http.post(url, data, { headers: headers })