你如何在 Angular2 中设置全局自定义 headers?
How do you set global custom headers in Angular2?
我想在我对 Angular2 后端的所有请求中设置 header Content-type: 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
的所有使用都使用新的 content-type,但此代码仍将 content-type 设置为 text/plain
saveMaster (master) {
return this.http
.put(`${config.API_URL}/masters/${master._id}`, JSON.stringify(master))
.map(res => res.json())
}
我必须为每个请求手动设置 headers 才能使其正常工作。我做错了什么吗?
注意: 我想全局设置一个 header 选项,不必像在 中找到的每个请求类型一样设置它。
- 将
MyOptions
更改为:
class MyOptions extends RequestOptions {
constructor() {
super({
method: RequestMethod.Get,
headers: new Headers({
'Content-Type': 'application/json',
'X-Some-Header': 'some-content'
});
});
}
}
- Put
provide(RequestOptions, {useClass: MyOptions})
AFTER HTTP_PROVIDERS
(否则将使用默认 BaseRequestOptions
而不是您的 MyOptions
)。
bootstrap(App, [
// ...
HTTP_PROVIDERS,
provide(RequestOptions, {useClass: MyOptions}) // <- after HTTP_PROVIDERS!!!
])
我想在我对 Angular2 后端的所有请求中设置 header Content-type: 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
的所有使用都使用新的 content-type,但此代码仍将 content-type 设置为 text/plain
saveMaster (master) {
return this.http
.put(`${config.API_URL}/masters/${master._id}`, JSON.stringify(master))
.map(res => res.json())
}
我必须为每个请求手动设置 headers 才能使其正常工作。我做错了什么吗?
注意: 我想全局设置一个 header 选项,不必像在
- 将
MyOptions
更改为:
class MyOptions extends RequestOptions {
constructor() {
super({
method: RequestMethod.Get,
headers: new Headers({
'Content-Type': 'application/json',
'X-Some-Header': 'some-content'
});
});
}
}
- Put
provide(RequestOptions, {useClass: MyOptions})
AFTERHTTP_PROVIDERS
(否则将使用默认BaseRequestOptions
而不是您的MyOptions
)。
bootstrap(App, [
// ...
HTTP_PROVIDERS,
provide(RequestOptions, {useClass: MyOptions}) // <- after HTTP_PROVIDERS!!!
])