繁体   English   中英

如何在Angular2中设置全局自定义标头?

[英]How do you set global custom headers in Angular2?

我想在我对Angular2中后端的所有请求中设置标题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所有用途都使用新的内容类型,但是这段代码仍然将内容类型设置为text/plain

saveMaster (master) {
  return this.http
    .put(`${config.API_URL}/masters/${master._id}`, JSON.stringify(master))
    .map(res => res.json())
}

我必须手动设置每个请求的标头,以使其正常工作。 难道我做错了什么?

注意:我想全局设置标题选项,而不必像每个请求类型一样设置它,就像在此解决方案中找到的那样。

  1. MyOptions更改为:
class MyOptions extends RequestOptions {
  constructor() { 
    super({ 
      method: RequestMethod.Get,
      headers: new Headers({
        'Content-Type': 'application/json',
        'X-Some-Header': 'some-content'
      });
    });
  }
}
  1. HTTP_PROVIDERS 之后放置provide(RequestOptions, {useClass: MyOptions}) (否则将使用默认的BaseRequestOptions而不是MyOptions )。
bootstrap(App, [
  // ...
  HTTP_PROVIDERS,
  provide(RequestOptions, {useClass: MyOptions}) // <- after HTTP_PROVIDERS!!!
])

看到这个插件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM