gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:49:53 27 4
gpt4 key购买 nike

在我的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com