So come impostare le intestazioni per una singola chiamata HTTP utilizzando Headers class.Come impostare l'intestazione HTTP predefinita in Angular2?
C'è un modo per farlo per tutte le chiamate HTTP?
So come impostare le intestazioni per una singola chiamata HTTP utilizzando Headers class.Come impostare l'intestazione HTTP predefinita in Angular2?
C'è un modo per farlo per tutte le chiamate HTTP?
Non è possibile utilizzare uno come $httpProvider
per angular1 ma è possibile creare la propria classe che estende/avvolge il valore predefinito Http
e aggiunge le intestazioni.
Date un'occhiata al codice di AuthHttp
fonte da angular2-jwt
libreria: https://github.com/auth0/angular2-jwt/blob/master/angular2-jwt.ts
vedo due modi per farlo:
BaseRequestOptions
È possibile estendere questa classe e impostare l'intestazione da utilizzare per ogni richiesta:
@Injectable()
export class DefaultRequestOptions extends BaseRequestOptions{
headers:Headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
});
}
e la registra come descritto di seguito:
bootstrap(AppComponent,[
HTTP_PROVIDERS,
provide(RequestOptions, { useClass: DefaultRequestOptions })
});
Http
séSi potrebbe anche estendere la classe Http
e impostare il intestazioni che vuoi inserire, come descritto di seguito:
@Injectable()
export class CustomHttp extends Http {
constructor(backend: ConnectionBackend, defaultOptions: RequestOptions) {
super(backend, defaultOptions);
}
request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
return super.request(url, options);
}
get(url: string, options?: RequestOptionsArgs): Observable<Response> {
// Add headers into options
(...)
return super.get(url, options);
}
(...)
}
e registri come descritto di seguito:
bootstrap(AppComponent, [
HTTP_PROVIDERS,
provide(Http, {
useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => new CustomHttp(backend, defaultOptions),
deps: [XHRBackend, RequestOptions]
})
]);
Spero che ti aiuta, Thierry
C'è un modo siamo in grado di modificare il ritorno osservabile all'interno del servizio. Come cambiare cosa succede quando la richiesta è iniziata o finita? Come lo faremo? – xmaestro
In breve possiamo modificare l'osservabile che viene restituito? – xmaestro
Con l'opzione 2, ecco una guida completa sull'aggiunta di intestazioni HTTP predefinite (e cattura gli errori http) estendendo la classe Http - http://www.adonespitogo.com/articles/angular-2-extending-http-provider/ –