开发者问题收集

Angular 5 HTTP.get 返回无法读取未定义的长度

2018-03-16
3229

我的服务正在发出此调用以检索下载文档的 URL:

return this.http.get(this.buildUrl('issueDocument', 'get', pathParams), { responseType: 'blob', params: queryParams });

this.http.get 中的 buildURL 工作正常,我已经对其进行了测试,但是,this.http.get 的返回会引发此错误

ERROR TypeError: Cannot read property 'length' of undefined
at HttpHeaders.applyUpdate (http.js:322)
    at eval (http.js:269)
    at Array.forEach (<anonymous>)
    at HttpHeaders.init (http.js:269)
    at HttpHeaders.forEach (http.js:368)
    at Observable.eval [as _subscribe] (http.js:2172)
    at Observable._trySubscribe (Observable.js:172)
    at Observable.subscribe (Observable.js:160)
    at CatchOperator.call (catchError.js:80)
    at Observable.subscribe (Observable.js:157)

您知道发生了什么吗?我无法理解为什么会发生这种情况...在开发工具网络选项卡中,它甚至没有显示网络调用...

2个回答

从错误消息中,您似乎只需要让 undefined 传递到标题的 .set> .set(...)

我这样做:

330290639
KhoPhi
2018-03-21

要解决此问题,请在设置到标题之前检查变量

if (!headers.has("Content-Type"))
    { headers = headers.clone( { headers: headers.set("Content-Type",  "application/json") }); }
mQuiroz
2022-04-12