javascript - Angular 2 中针对每个请求的自定义 Http header

标签 javascript angular typescript angular2-services angular2-http

在我的 Angular 2 应用程序中,我尝试使用 Http (@angular/http) 向我的 API 发出请求。为了使这些请求正常工作,我需要将某些 header 添加到我向 API 发出的每个请求中(包括 JWT header )。

我想做的是有一个API类来负责创建Http请求以及一些错误处理和验证等。

然而,事实证明,我无法使用 API 类中的 Http 类,因为它会出现以下错误; error

用户.service.ts

import { Injectable } from '@angular/core';
import {User} from "../models/User";
import {API} from "../API";
import {Http} from "@angular/http";

@Injectable()
export class UserService
{
    constructor (private http : Http) {}

    getProfile (user : User)
    {
        let api = new API (this.http);

        return api.doRequest ('/user/' + user.id + '/profile');
    }
}

API.ts

import {Http, Headers, RequestOptions} from '@angular/http';

export class API
{
    ...

    constructor (private http : Http) {}

    doRequest (url : string, method : string, data?)
    {
        let headers = {...};
        let options = new RequestOptions ({ headers: new Headers (headers), ... } );

        return this.http.get (url, data, options)
            .catch ((error) => { ... } );
    }
}

但是,直接从 UserService 使用 Http 时效果会更好。

有没有办法解决这个问题,或者有更好的方法来达到预期的结果?我应该扩展 Http 吗?

最佳答案

您应该使用 append() 方法添加 header ,然后将其传递给请求对象,如下所示

 doRequest (url : string, method : string, data?)
    {
        headers= new Headers();
        headers.append(name1,value1);
        headers.append(name2,value2);
        ....
        let options = new RequestOptions ({ headers: headers, ... } );

        return this.http.get (url, data, options)
            .catch ((error) => { ... } );
    }

关于javascript - Angular 2 中针对每个请求的自定义 Http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42704832/

相关文章:

javascript - jquery在一页上显示两个轮播

javascript - 在页面完全呈现后运行 javascript

angular - Angular 2 异步验证器数组 : async validator always returns validation error 的问题

authentication - 带有 auth0-lock 的 Auth0 仅在使用调试器时进行身份验证,以缓慢地逐步执行代码

angular - 更改 Angular 7 中父组件中的变量

javascript - 每个页面的 Gatsby 配置文件

javascript - 如何使用 Angular JS 检查任何列值的 json 数据是否存在数组/集合?

javascript - 单击按钮以更改表格行的 Angular 2 管道

node.js - 防止在监视模式下运行时对某些文件夹进行更改后自动重新启动服务器

angular - 如何将异步数据作为对象数组传递给子组件 - angular 6