我想Content-type: application/json
在我对Angular2中后端的所有请求中设置标题.我在我的主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
到:
class MyOptions extends RequestOptions {
constructor() {
super({
method: RequestMethod.Get,
headers: new Headers({
'Content-Type': 'application/json',
'X-Some-Header': 'some-content'
});
});
}
}
放置provide(RequestOptions, {useClass: MyOptions})
AFTER HTTP_PROVIDERS
(否则BaseRequestOptions
将使用默认值而不是您的MyOptions
).
bootstrap(App, [
// ...
HTTP_PROVIDERS,
provide(RequestOptions, {useClass: MyOptions}) // <- after HTTP_PROVIDERS!!!
])
看到这个插件