内容类型标题未设置其他值始终为application / json

时间:2017-10-13 08:41:15

标签: angular web-services symfony

在我的应用程序中,我使用authHttp服务来调用get请求以及内容类型标题。

dowloadReleases(releaseID: number): Observable<any> {
    var headers = new Headers({ 'Content-Type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' , 'release-id' : releaseID});
    var options = new RequestOptions({ headers: headers });
    var endpoint = 'api/releases';
    return this.authHttp.get(endpoint, options).map(res => res.json());
  }

同样的请求正在运行,但在将angular2升级为4内容类型后,总是将application / json作为application / vson而不是application / vnd.openxmlformats-officedocument.spreadsheetml.sheet。

Api是用symfony(php)框架编写的,从服务端形成我能够正确获取release-id值。

1 个答案:

答案 0 :(得分:0)

对于Angular 5,可能超出,HttpParamsHttpHeaders等等,不可变。从Angular docs本身,可以通过这种方式提出请求:

let headers = new HttpHeaders();
headers = headers.set('Content-Type', 'multipart/form-data');
const req = new HttpRequest('POST', '/upload-file', 
file, {
    headers: headers,
    reportProgress: true
});

以上是带有更改标题的POST请求示例,并监听事件进度。如您所见,set()的{​​{1}}方法返回该类的实例。