Http headers 如何在Angular2中设置全局自定义标题?
我想在我对Angular2后端的所有请求中设置头Http headers 如何在Angular2中设置全局自定义标题?,http-headers,content-type,angular,Http Headers,Content Type,Angular,我想在我对Angular2后端的所有请求中设置头内容类型:application/json。我在我的主app.js文件中使用它 let headers = new Headers({ 'Content-Type', 'application/json' }) class MyOptions extends BaseRequestOptions { headers: headers } bootstrap(App, [ provide(RequestOptions, {useC
内容类型:application/json
。我在我的主app.js
文件中使用它
let headers = new Headers({
'Content-Type', 'application/json'
})
class MyOptions extends BaseRequestOptions {
headers: headers
}
bootstrap(App, [
provide(RequestOptions, {useClass: MyOptions}),
ROUTER_BINDINGS,
HTTP_PROVIDERS,
bind(APP_BASE_HREF).toValue('/')
])
我希望所有使用Http
的用户都使用新的内容类型,但此代码仍将内容类型设置为text/plain
saveMaster (master) {
return this.http
.put(`${config.API_URL}/masters/${master._id}`, JSON.stringify(master))
.map(res => res.json())
}
我必须手动设置每个请求的标题以使其正常工作。我做错什么了吗
注意:我想全局设置一个头选项,而不必在中找到的每个请求类型中都设置它
MyOptions
更改为:类MyOptions扩展了RequestOptions{
构造函数(){
超级({
方法:RequestMethod.Get,
标题:新标题({
“内容类型”:“应用程序/json”,
“X-Some-Header”:“某些内容”
});
});
}
}
provide(RequestOptions,{useClass:MyOptions})
放在HTTP\u提供者之后(否则将使用默认的BaseRequestOptions
而不是MyOptions
)bootstrap(应用程序、[
// ...
HTTP_提供商,
提供(RequestOptions,{useClass:MyOptions})//可能重复@MarkRajcok,该答案仍在为每种类型的请求手动设置自定义头。明天我将尝试alexpods解决方案。这很好。遗憾的是,这不适用于动态头(例如:依赖于可能更改的Cookie的头)。构造函数在加载时只会被评估一次。对于动态头,您可以扩展http类并修改请求
方法,为每个请求添加自定义头。我已经为此编写了一个全面的指南-对于NG4+(我目前在Angular 6上)。这个答案对我有效=>