Json Input Ionic 3和Angular 6的意外结束

时间:2019-02-26 07:32:44

标签: json angular typescript ionic-framework angular6

我看到了很多有关此错误的主题,但找不到任何解决方案。我今天早上醒来并提供了代码,我看到错误“ Json Input意外结束”我没有更改代码或软件包版本中的任何内容。我和我的同事正在从事这个项目,尽管我们具有相同的软件包和版本,但是相同的代码在他的计算机上也能很好地工作。

问题是当我请求服务器时,它响应“状态200正常”,但是返回空的“ _body”,如下图所示。

enter image description here

以下是错误的详细信息:

enter image description here

示例代码为;

     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);
            });
    });

但是,我认为它与代码无关。因此,我尝试清理缓存,删除节点模块并重新安装。将所有代码从我的同事复制到我的计算机,但是问题从未消失。所以有人知道如何解决这个问题吗?

谢谢。

3 个答案:

答案 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?如果您使用的是最新版本,请尝试降级您的版本:)。不客气。