[英]Angular2 Router template request http headers
簡單的問題。
Angular2路由器使用什么來向服務器發出路由請求? 我需要在所有模板請求上插入自定義標頭(X-locale:'en'),以便服務器可以翻譯它們。
我重寫了BaseRequestOptions和Http類,它可以處理除默認路由調用之外的所有內容。 我的意思是@Component模板調用。
更新1
我會說明這個問題
這是angular2向我的Laravel5后端發出的模板請求。
注意Main.Users.user Main.Users.user-detail
等等。
這些都是Angular2發出的所有@Component模板請求。 我還將在下面發布請求詳細信息
我需要將X-locale標頭插入@Component模板請求的http標頭中。 為此,我需要知道哪個類創建了這些請求,因此可以以某種方式修改請求標頭。
更新#2
我還將發布我的自定義BaseRequestOptions代碼
class RequestOptionsWrapper extends BaseRequestOptions {
constructor () {
super();
let locale = ( localStorage.getItem("locale") ) ? localStorage.getItem("locale") : "en" ;
this.headers.append('X-locale', locale);
}
}
//enableProdMode();
bootstrap(
AppComponent,
[
ROUTER_PROVIDERS,
ROUTER_DIRECTIVES,
HTTP_PROVIDERS,
provide(RequestOptions, { useClass: RequestOptionsWrapper })
]
)
這可以按預期工作,並且將X語言環境插入到我在應用程序中發出的所有Http請求中,但該死的模板調用除外,該調用被排除在外。 我也覆蓋了Http類,但是@Component模板調用既沒有調用Http類,也沒有調用BaseRequestOptions類。
Http.post請求的小例子
謝謝JB Nizet和Günter。 我最終選擇了使用angular2-cookie代替請求標頭。
我做了一個全局CookieService服務,該服務為我的應用程序提供並設置了區域設置cookie,該服務將在所有模板請求中使用。
應用程式
import { CookieService } from 'angular2-cookie/core';
//enableProdMode();
bootstrap(
AppComponent,
[
CookieService,
ROUTER_PROVIDERS,
ROUTER_DIRECTIVES,
HTTP_PROVIDERS,
]
)
.catch(err => console.error(err));
和要求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.