簡體   English   中英

Angular2路由器模板請求HTTP標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM