2017-10-19 5 views
0
return this.http.post(this.url + '/' + endpoint, body, {headers: { 
     'customHeader1': 'changed', 
     'customHeader2': 'changed2'  
    }}); 

L'extrait ci-dessus est ma requête http. Je peux effectuer l'appel sans l'objet En-têtes, mais le point de terminaison que j'appelle ne renvoie pas les données tant que je n'ai pas défini ces en-têtes. L'ajout de ces têtes a provoqué l'application pour renvoyer l'erreur ci-dessous:En-têtes ioniques Ne pas passer par http.post

user.ts:50 ERROR TypeError: req.headers.forEach is not a function 

Comment puis-je résoudre ce problème et mettre mes en-têtes dans la requête http?

Ce sont mes importations

import { HttpClient, HttpParams } from '@angular/common/http'; 
import { Injectable } from '@angular/core'; 
import { Http, Response, RequestOptionsArgs, RequestMethod, Headers, Request 
} from '@angular/http'; 

Ceci est mon constructeur

constructor(public http: HttpClient) {} 

Répondre

1

Je crée généralement un choix objet avec les «têtes de

let headers = new Headers({ 'Content-Type': 'application/json' }); 
let options = new RequestOptions({ headers }); 

puis l'utiliser

this.http.post(this.url + '/' + endpoint, body, options) 

comme expliqué ici: https://www.concretepage.com/angular-2/angular-2-http-post-example

+0

Correction de l'erreur que je recevais, mais les en-têtes ne sont pas définis dans la demande – user3044394