2016-07-14 21 views
0

我正在尝试为HXR请求设置HEADERS以便让“Content-Type”:“application/x-www-form-urlencoded ;字符集= UTF-8"任何Ajax调用我会做,但我得到了想要的几个误区扩展的Http类如何在Angular 2中配置_defaultOptions.headers(扩展Http类)

import {Http, RequestOptions, ConnectionBackend} from "@angular/http"; 

export class HttpCustom extends Http{ 

    constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions){ 
     super(_backend, _defaultOptions); 
     this._defaultOptions.headers.set("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); 
    } 

} 

有谁知道如何正确,甚至是不同的解决方案扩展的Http成立标题一次?

回答

0

您可以从RequestOptions类扩展的合并方法

export class AppRequestOptions extends RequestOptions { 

    merge(options?:RequestOptionsArgs):RequestOptions { 

    let headers = options.headers || new Headers; 
    headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; 
    options.headers = headers; 

    return super.merge(options); 
    } 
} 

然后你提供应用自定义类引导

bootstrap(AppComponent, [ 
      HTTP_PROVIDERS, 
      {provide: RequestOptions, useClass: AppRequestOptions }) 
]); 

它应该是足够的。

+0

“提供”方法已被弃用(RC4)...你有任何其他想法做到这一点吗? – Donovant

+0

然后使用对象版本。 {提供:RequestOptions,useClass:AppRequestOptions} –

+0

真的很想理解为什么有人已经投下了这个答案。 –