2016-07-14 4 views
0

Я пытаюсь настроить HEADERS для запроса HXR, чтобы иметь «Content-Type»: «application/x-www-form-urlencoded ; кодировка = UTF-8" для любого AJAX вызова я сделаю, но я получил несколько ошибок, пытаясь расширяет Http классКак настроить _defaultOptions.headers в Angular 2 (расширение класса 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

Действительно хотел понять, почему кто-то проголосовал за этот ответ. –

Смежные вопросы