2016-07-14 42 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

真的很想理解爲什麼有人已經投下了這個答案。 –