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

上面的代码片段是我的http请求。我可以在没有标题对象的情况下进行调用,但是我调用的端点在我设置这些标题之前不会返回数据。添加这些标头会导致应用程序返回以下错误:离子头无法通过http.post设置

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

如何解决此问题并在http请求中设置我的标头?

这是我进口

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

这是我的构造

constructor(public http: HttpClient) {} 

回答

1

我通常会创建一个选项的 '头'

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

对象,然后用它

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

如在此处所述:https://www.concretepage.com/angular-2/angular-2-http-post-example

+0

修复了我收到的错误,但标头未在请求中设置 – user3044394