我有错误,同时将angular2 post rest数据发送到NodeJS后端。
我看到POST已完成,服务器是LOG正确的数据,但是错误显示在浏览器上。
发生错误: SyntaxError:JSON.parse:JSON数据第1行第1列的意外数据结尾
我的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!");
}
}
服务:
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);
}
和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();
});
在帖子中我们有:“{”username“:”username“,”password“:”password“}”。
我犯了什么错?请求帮助或解决方案。
答案 0 :(得分:0)
Awwwww。这是我的坏事,照顾你的NodeJS服务器响应。获得POST后,应该发送任何res.json({status: "OK"})
或类似的sommething,以获得响应。这个错误不是因为Angular2,而是因为NodeJS。浏览器从nodeJS获得空响应,或者它不是JSON格式。