Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http headers 如何在Angular2中设置全局自定义标题?_Http Headers_Content Type_Angular - Fatal编程技术网

Http headers 如何在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

我想在我对Angular2后端的所有请求中设置头
内容类型: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上)。这个答案对我有效=>