【问题标题】:Get response Header variable in angular 9以角度 9 获取响应标题变量
【发布时间】:2020-05-24 06:08:14
【问题描述】:

我正在尝试通过后端获取我在标题上声明的变量,但此代码不起作用:

在我的后端:(express + knex):

    async login(req, res) {
    const {
      user_name,
      email
    } = req.body;

    let {
      id
    } = await connetion('user')
      .where('email', email)
      .andWhere('user_name', user_name)
      .select(['id'])
      .first();

    if (id == undefined) {
      console.log('entrou no if'.italics.blue);

      await connetion('user').insert({
        user_name,
        email
      })

      let {
        id
      } = await connetion('user')
        .where('email', email)
        .andWhere('user_name', user_name)
        .select(['id'])
        .first();

      res.header('authorization', id);
      console.log(id);


      console.log('\n<ยบ>'.bold.yellow + ' novo usuario '.cyan + user_name + ' criado e logado'.cyan);
      res.status(201).send(); //? 201 : created
      return res.json({
        id
      })
    }

我是我的 service.ts(angular):

    import { retry, map } from 'rxjs/operators';
    import { host } from './host';
    import { User } from './../models/user';
    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';

    @Injectable({providedIn: 'root'})
    export class AuthService {
      constructor(private http: HttpClient) {}

      public login(user: User): any {
        return this.http.post(host+'/login', user, {observe: 'response', headers: 'autorization'})
          .pipe(
            map(res => { return res})
          ) 
      }
    }

我是我的 component.ts(angular):

  login(){
    this.authService.login(new User({
        user_name: this.user_name,
        email: this.email
      })
    ).pipe(first())
    .subscribe(
      ((data: HttpResponse<any>) => {
        console.log("response :");
        console.log(data);
        console.log("response.headers: ");
        console.log(data.headers);
        console.log("response.headers.get('authorization'): ");
        console.log(data.headers.get('authorization'));
      })
    )

console.logs:

这里是responseHeader(网络表)中的授权:

拜托,如果你能帮我解决这个问题,我会给你一个大大的虚拟拥抱(隔离)

【问题讨论】:

  • 您能否通过在控制台中展开HttpHeaders 来显示所有值?另外,显示您如何在后端设置变量

标签: angular http-headers httpclient angular-httpclient angular-http


【解决方案1】:

您必须在后端的响应标头中添加

Access-Control-Expose-Headers:授权

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2016-05-31
    相关资源
    最近更新 更多