我看到了很多有关此错误的主题,但找不到任何解决方案。我今天早上醒来并提供了代码,我看到错误“ Json Input意外结束”我没有更改代码或软件包版本中的任何内容。我和我的同事正在从事这个项目,尽管我们具有相同的软件包和版本,但是相同的代码在他的计算机上也能很好地工作。
问题是当我请求服务器时,它响应“状态200正常”,但是返回空的“ _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);
});
});
但是,我认为它与代码无关。因此,我尝试清理缓存,删除节点模块并重新安装。将所有代码从我的同事复制到我的计算机,但是问题从未消失。所以有人知道如何解决这个问题吗?
谢谢。
答案 0 :(得分:0)
如果看不到图像,
响应;
Response {_body: "", status: 200, ok: true, statusText: "OK", headers: Headers, …}
headers: Headers {_headers: Map(0), _normalizedNames: Map(0)}
ok: true
status: 200
statusText: "OK"
type: 2
url: "http://myapiurl//login"
_body:""
__proto__: Body
错误的详细信息;
ERROR SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Response.Body.json (http.js:1091)
at SafeSubscriber._next (account-auth-service.ts:109)
at SafeSubscriber.__tryOrUnsub (Subscriber.js:242)
at SafeSubscriber.next (Subscriber.js:189)
at Subscriber._next (Subscriber.js:129)
at Subscriber.next (Subscriber.js:93)
at XMLHttpRequest.onLoad (http.js:1591)
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.js:4751)
答案 1 :(得分:0)
您得到的错误与您得到的响应是正确的。
我的意思是您的回复正文为“”,如果您尝试JSON.parse("")
,将会收到错误消息。即
ERROR SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
所以现在我们发现您得到的错误是由于您得到的响应。现在我们需要知道为什么您的API返回空字符串?我们不知道,因为您尚未粘贴API登录代码。无论哪种方式,您都需要编辑问题并添加API登录代码或创建新问题。
答案 2 :(得分:0)
您现在使用哪个版本的Chrome?如果您使用的是最新版本,请尝试降级您的版本:)。不客气。