我正在构建我的MEAN项目的前端。我的服务器端工作正常,所以如果我发送一个帖子请求到本地主机,使用firstName,lastName,电子邮件和密码,我得到一个成功的响应。
这是我在Angular中的功能:
signUp(user) {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this._http
.post('/signup', JSON.stringify({ user }), { headers })
.map(res => res.json())
.map((res) => {
console.log(JSON.stringify({ user }));
return res.success;
});
}
不幸的是,这只会返回一个success: false
参数。示例测试将控制台注销为:
{ “用户”:{ “名字”: “fghnjmkcvbnm”, “姓氏”: “dfghjk”, “电子邮件”: “dfghj@ghnjm.com”, “密码”: “fghjk12345456”}}
为什么这不起作用?
答案 0 :(得分:1)
在屏幕截图中,您使用application/x-www-form-urlencoded
作为内容类型。
我会以这种方式重构您的代码:
signUp(user) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let user = new URLSearchParams();
user.set('email', 'some email');
user.set('password', 'some password');
user.set('firstName', 'first name');
user.set('lastName', 'last name');
return this._http
.post('/signup', user.toString(), { headers })
.map(res => res.json())
.map((res) => {
console.log(JSON.stringify({ user }));
return res.success;
});
}