简体   繁体   English

Angular2 HTTP POST发生错误SyntaxError:JSON输入的意外结束

[英]Angular2 HTTP POST An error occurred SyntaxError: Unexpected end of JSON input

I have error meantime angular2 post rest data to NodeJS backend. 我有错误,同时angular2 post rest数据到NodeJS后端。

I see POST is done, server is LOG correct data, but error is showing up on browser. 我看到POST完成了,服务器是LOG正确的数据,但是浏览器上出现错误。

An error occurred: SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data 发生错误:SyntaxError:JSON.parse:JSON数据第1行第1列的意外数据结尾

My NG2 call and service: 我的NG2电话和服务:

onSubmit(form:FormGroup) {
        let userform: FormGroup = form.value;
        console.log("userform: ", userform);

        if (form.valid) {
            console.log(form.value);
            this.appService.signIn(userform)  
                .subscribe(form => console.log('subscribe: ', form))
        } else {
            console.log("Form is not VALID!"); 
        }
    }

SERVICE: 服务:

signIn(dataUser: Object): Observable<User> {
   dataUser = JSON.stringify(dataUser);
   debugger;

    let headers = new Headers({
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': 'http://127.0.0.1:3005'
    });
    let options = new RequestOptions({ headers: headers });

    console.log("data: ", dataUser, "\nHeaders: ", headers);

    return this.http
        .post( this.signInUrl, dataUser, options)
        .map( (res:Response) => res.json().data || {  } as User )
        .catch(this.handleError);

}

and nodeJS: 和nodeJS:

app.post('/login', function (req, res) {
    console.log("Recived login request!");
    console.log("Request: ", req.body);
    res.header({
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE',
        'Accept': 'q=0.8;application/json;q=0.9'
    })
    res.end();
});

In post we have: "{"username":"username","password":"password"}". 在帖子中我们有:“{”username“:”username“,”password“:”password“}”。

What I'am making wrong? 我错了什么? Please for help or solution. 请求帮助或解决方案。

Awwwww. Awwwww。 That was my bad, Take care of your NodeJS Server response. 这是我的坏事,照顾你的NodeJS服务器响应。 After get POST, should be sended any res.json({status: "OK"}) or sommething similar, to get response. 获得POST后,应该发送任何res.json({status: "OK"})或类似的sommething,以获得响应。 This error was not because of Angular2, but because of NodeJS. 这个错误不是因为Angular2,而是因为NodeJS。 Browser get empty response from nodeJS, or it was not JSON format. 浏览器从nodeJS获得空响应,或者它不是JSON格式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM