Angular 6:httpclient不显示标头,而chrome显示

时间:2018-11-15 23:36:21

标签: node.js angular

如果我的问题似乎已经解决,请原谅我。这些对我不起作用。

基本上,我是角度6的新用户。我使用http post对用户进行身份验证。我的代码看起来像这样。

onSubmit(value){
    const httpOptions = {
        headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
        observe: 'response' as 'body'
    };

    this.http.post(Globals.authEndPoint, value, {observe: 'response'})
        .subscribe(function(res){
            console.log(res);
        });
}

在服务器端:

app.use(function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "*");

        if (req.method === 'OPTIONS'){
            res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, GET' );
            return res.status(200).json({})
        }
        next();
    });

这:

 res.status(200).header( 'X-Auth-Token', 'token-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x').send(user);

我对angular的请求是这样完成的:

我已经找到了一个像我的question,但是答案对我的情况不起作用。

我认为我做错了什么。 我如何直接在响应后获得令牌。

有什么想法吗?

enter image description here

enter image description here

更新:

我尝试了下面列出的答案。

getConfigResponse(value): Observable<HttpResponse<Config>> {
    return this.http.post<Config>( Globals.authEndPoint, value, {observe: 'response'});
}

这次我得到一个标题。 enter image description here

1 个答案:

答案 0 :(得分:1)

您是否尝试过阅读完整的回复?另外,如果您尚未使用Angular 4.3.x及更高版本,我还建议您使用HttpClient。

HttpClient reading the full response

showConfigResponse() {
  this.configService.getConfigResponse()
    // resp is of type `HttpResponse<Config>`
    .subscribe(resp => {
      // display its headers
      const keys = resp.headers.keys();
      this.headers = keys.map(key =>
        `${key}: ${resp.headers.get(key)}`);

      // access the body directly, which is typed as `Config`.
      this.config = { ... resp.body };
    });
}