Angular 2 http.post发送空对象
这是一个authservice登录名: 我已经做了控制台日志来确定数据是否真的被传递了,是的。一切正常 除此之外,发送的数据只是{} 根据我的Express控制台,这是唯一通过req.body的东西。req.headers表示内容类型正确,即内容类型:application/json 我尝试过使用POSTMan将相同的json请求发送到API端点。很好 Angular 2的http.post袖子上还有其他窍门吗Angular 2 http.post发送空对象,angular,express,angular2-http,Angular,Express,Angular2 Http,这是一个authservice登录名: 我已经做了控制台日志来确定数据是否真的被传递了,是的。一切正常 除此之外,发送的数据只是{} 根据我的Express控制台,这是唯一通过req.body的东西。req.headers表示内容类型正确,即内容类型:application/json 我尝试过使用POSTMan将相同的json请求发送到API端点。很好 Angular 2的http.post袖子上还有其他窍门吗 上面的代码有什么问题吗?在这里发布答案,可能会有帮助。感谢@cartant的指点。我
上面的代码有什么问题吗?在这里发布答案,可能会有帮助。感谢@cartant的指点。我只需要仔细看看: 我不需要显式地设置标题。默认情况下,post发送的内容类型为:application/json 我不必对要发送的数据进行字符串化
login(email: string, password: string): Observable<boolean> {
// this is optional
// let headers = new Headers({ 'Content-Type': 'application/json' });
// let options = new RequestOptions({ headers: headers });
return this.http.post(
apiURL + '/admin/login',
{ email: email, password: password },
// options
)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ email: email, token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
});
}
在这里发布答案,可能会对某人有所帮助。感谢@cartant的指点。我只需要仔细看看: 我不需要显式地设置标题。默认情况下,post发送的内容类型为:application/json 我不必对要发送的数据进行字符串化
login(email: string, password: string): Observable<boolean> {
// this is optional
// let headers = new Headers({ 'Content-Type': 'application/json' });
// let options = new RequestOptions({ headers: headers });
return this.http.post(
apiURL + '/admin/login',
{ email: email, password: password },
// options
)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ email: email, token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
});
}
好的,数据是否通过了?这里有点矛盾。一方面你说数据是传递的,另一方面你说数据只是:{}:@AJT_82抱歉搞混了。我的意思是,一个空对象{}是http.post发送的唯一东西。这是什么。模型?我希望JSON.stringify{email:email,password:password}对后面的逗号不满意;你能检查一下并确认这是一个问题吗?我更倾向于这样做好的,数据通过了吗?这里有点矛盾。一方面你说数据是传递的,另一方面你说数据只是:{}:@AJT_82抱歉搞混了。我的意思是,一个空对象{}是http.post发送的唯一东西。这是什么。模型?我希望JSON.stringify{email:email,password:password}对后面的逗号不满意;你能回顾一下并确保这是一个好的解决方案吗?我更倾向于这样做,那么,解决方案是什么呢?你忘了什么?@Enrico我不必对要发送的数据进行字符串化。那么,解决方案是什么?你忘了什么?@Enrico我不必对要发送的数据进行字符串化。
login(email: string, password: string): Observable<boolean> {
// this is optional
// let headers = new Headers({ 'Content-Type': 'application/json' });
// let options = new RequestOptions({ headers: headers });
return this.http.post(
apiURL + '/admin/login',
{ email: email, password: password },
// options
)
.map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ email: email, token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
});
}