繁体   English   中英

Angular2 http.get引发例外:错误:未捕获(按承诺):无法读取null的属性“ toString”

[英]Angular2 http.get throws EXCEPTION: Error: Uncaught (in promise): Cannot read property 'toString' of null

今天,我遇到了Angular2的Http模块的get方法引发的错误,花了我一段时间才找到解决方案,所以我决定将其放在此处,以减轻人们的生活痛苦。 否则,如果您想花几个小时调试角度/核心,请不要阅读:)。

我的用例是发送不带主体有效负载的GET请求,并将jwt令牌设置为标头,如下所示:

let headers = new Headers();

headers.append('Content-Type', 'application/json');
headers.append('Authorization', token);

let options = new RequestOptions({
    headers: headers
});

然后,我向运行服务器的本地主机发出了一个get请求:

return this.http.get('http://localhost:3000/someApiUrl', options)
    .toPromise()
    .then(this.extractData)
    .catch(this.handleError);

但是我做什么,Angular都会抛出异常

EXCEPTION: Error: Uncaught (in promise): Cannot read property 'toString' of null

Angular引发异常,因为GET请求发送时没有正文,并且不检查null 因此,当Angular试图强制请求字符串的主体时,实际上是在null上调用toString()方法。

解决方案是将主体显式设置为空字符串,如下所示:

    let options = new RequestOptions({
        headers: headers,
        body: ''
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM