POST请求中JSON参数中的意外标记

时间:2018-03-05 15:51:00

标签: node.js typescript ionic2

我正在尝试从Ionic应用程序工作向nodejs服务器发出POST请求,但我偶然发现了这个错误。

Http failure response for http://127.0.0.1:3000/services/user/signin: 500 Internal Server Error", SyntaxError: Unexpected token u in JSON at position 0;

我可以访问应用程序和API服务器。手头的任务,尝试将凭据发送到服务器,这将检查这些凭据是否被识别并将发送响应。服务器端代码工作正常,因为我有一个Web应用程序访问相同的资源,并像魅力一样工作。

这是代码。

主页:

doLogin() {
  this.remoteService.login(this.user);
}

user是键值数组

user = { email:'', password:'' };

现在为remoteService注入中的登录功能:

login(user){
    let headers = new HttpHeaders();
    headers.append('Content-Type', 'application/json');
    console.log(JSON.stringify(user));
    this.http.post(serviceUrl+'/user/signin', JSON.stringify(user), {headers: headers}).subscribe(
        function(response) { console.log("Success Response" + response)},
        (err: HttpErrorResponse) => {
            if (err.error instanceof Error) {
                console.log(err);
            } else {
                console.log(err);
            }
        }
    );
}

我用过这一行

console.log(JSON.stringify(user));

测试JSON正确性的函数参数,它是一个魅力。

最后,这是nodejs服务器代码

if(label === 'signin') {
    return function (req, res, next) {
    {
        var user = JSON.parse(req.query.user);
        db.query('SELECT username as id FROM user where email = ? and password = ?', [user.email,user.password], function (err, result) {
            if (err) {
              next(err);
            }
            else {
              if(result.length === 1) {
                delete user.password;
                req.session.user = result[0];
                req.result = 400;
              }
              else
              {
                req.result = 404;
              }
              next();
            }
          });
        }
    };
}

你能帮我解决一下这个令人讨厌的错误吗?我整天都在为这一天和昨晚的很大一部分敲打我的脑袋。

0 个答案:

没有答案