[英]"Uncaught TypeError: Cannot read property 'toString' of null"
[英]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.