无法发送数组中的http标头?如何发送数组中的多个对象?

时间:2019-03-26 08:34:56

标签: angular

尝试在http headers中发送数组。我创建了一个HTTP Interceptor用于请求响应处理。 我的interceptor.ts文件如下所示,在这些代码中,我已将key value配对发送其文件。但我想将其与对象一起发送。

sessionParam:any = {
    param1:{'name':'ttt', 'lname':'test'},
    param2:{'name':'aaa', 'lname':'aaa'},
    param3:{'name':'bbb', 'lname':'bbb'}
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    let headers = new HttpHeaders();

    for (var val in this.sessionParam) {
        Object.keys(this.sessionParam[val]).forEach(key => {
            headers = headers.set(key,this.sessionParam[val][key]);
        });
    }

    request = request.clone({           
        url: `${environment.baseUrl}${request.url}`,
        headers: headers
    })
    return next.handle(request);
}

我要在单个数组中发送所有对象
如何在单个数组中传递多个对象?

1 个答案:

答案 0 :(得分:0)

您应通过headers.set方法更改headers.append

 for (var val in this.sessionParam) {
        Object.keys(this.sessionParam[val]).forEach(key => {
            headers.append(key,this.sessionParam[val][key]);
        });
}

更新:

您的参数需要遵循HttpHeader参数列表。

sessionParam:any = {
    param1:{'name':'responseType', 'value':'blob'},
    param2:{'name':'Authorization', 'value':'Bearer'},
}