簡體   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