在我的Angular 2應用程序中,我試圖使用Http(@angular/http
)向我的API發出請求。爲了使這些請求起作用,我需要將某些標頭添加到對API所做的每個請求中(包括JWT標頭)。在Angular 2中爲每個請求定製Http標頭
我想要做的是有一個API類,它創造了HTTP請求和一些錯誤處理和驗證等
事實證明的照顧,但是,我不能使用Http class從我的API類,因爲它會拿出以下錯誤;
user.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) => { ... });
}
}
東西更好地工作使用的Http直接從UserService的時候,但是。
有沒有辦法解決這個問題,或者更好的方法來達到預期效果?我應該只是延長Http?
有沒有你不能只使用HTTP API的類中的一個原因,而在所有未通過它在(,不知怎的,看起來靠不住的,我不t認爲傳遞一個注入服務的實例是個好主意......爲什麼不把它注入要使用它的類)?你不需要調用API.doRequest? –