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