我的app.component.ts包含
login() {
var user = `{ email: ${this.email}, password: ${this.password} }`
const headers = new HttpHeaders()
.set('Authorization', 'my-auth-token')
.set('Content-Type', 'application/json');
this.http.post('http://localhost:3000/signin', user, {
headers: headers
}).subscribe(data => {
});
console.log(`email: ${this.email} password: ${this.password}`)
}
尝试获取节点中的数据时
错误:SyntaxError:位置2的JSON中出现意外的标记e
我正在使用
req.body
获取数据。 解析JSON数据的正确方法是什么?还想知道这是否是将表单数据从角度传递到节点的正确方法?
答案 0 :(得分:2)
var user = {
email: this.email,
password: this.password
}
...
this.http.post('http://localhost:3000/signin',user).subscribe(...)
答案 1 :(得分:1)
user= {
email: aka@gmail.com,
password: 123,
}
$http({
method: "POST",
url: http://localhost:3000/signin,
data: JSON.stringify(user),
headers: headers
}).success(function(data) {
// you can print data hera
}
}).error(function() {
});
答案 2 :(得分:1)
使用Angular 6 HttpClient,您不需要对对象进行字符串化(see POST example from official doc)。同样,对于GET请求,HttpClient会为您解析json数据。
试试这个:
login() {
const user = { email: this.email, password: this.password };
const headers = new HttpHeaders({
'Authorization': 'my-auth-token',
'Content-Type': 'application/json'
});
this.http.post('http://localhost:3000/signin', user, {
headers: headers
}).subscribe(data => {});
console.log(`email: ${this.email} password: ${this.password}`) }
答案 3 :(得分:0)
首先我认为你为用户使用了一个对象,而不是看到它是一个字符串。 您的数据没有正确的json格式。 尝试在字段名称
上加上引号var user = `{ "email": ${this.email}, "password": ${this.password} }`
错误!
您应该对数据进行字符串化 - JSON.stringify(user)
this.http.post('http://localhost:3000/signin', JSON.stringify(user), { headers: headers }).subscribe(data => { });