【发布时间】:2019-07-19 16:42:40
【问题描述】:
我看到了很多关于这个错误的主题,但我找不到任何解决方案。我今天早上醒来并提供了我的代码,我看到错误“Json 输入意外结束”我没有改变我的代码或包的版本。我和我的同事正在做这个项目,虽然我们有相同的包和版本,但相同的代码在他的计算机上运行良好。
问题是当我请求服务器时,它响应“status 200 ok”但它返回空的“_body”,如下图所示。
这里是错误的详细信息:
示例代码是;
console.log(localStorage.getItem("usedURL"));
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post(localStorage.getItem("usedURL")+"/login", JSON.stringify({ "UserName": credentials.email, "Password": credentials.password }), { headers: headers})
.subscribe(res => {
console.log(res);
resolve(res.json());
}, (err) => {
reject(err);
});
});
但是我相信它与代码无关。所以我尝试清理缓存,删除节点模块并重新安装它。将我同事的所有代码复制到我的计算机,但问题从未消失。所以有人知道我该如何解决这个问题吗?
谢谢。
【问题讨论】:
-
首先,你是
http还是httpclient?其次,你为什么要在 http 请求上封装一个承诺?第三,如果你想返回promise,你可以简单地使用.toPromise()learnrxjs.io/operators/utility/topromise.html将你的http请求转换为promise。 -
我正在使用 http。我在每个提供程序中都收到此错误,因此当我转换此可观察对象或编写为 .toPromise() 版本时没有任何变化。
-
您应该使用
HttpClientModule而不是HttpModule,因为您使用的是 angular6 angular.io/api/common/http/HttpClientModule。
标签: json angular typescript ionic-framework angular6