繁体   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