angular - Angular 6 HttpClient 响应返回未定义
问题描述
我创建了这个 auth-api.ts 服务,有一个登录方法:
login(username, password)
{
let headerOptions = new HttpHeaders();
headerOptions.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
const httpParams = new HttpParams()
.set('username', username)
.set('password', password);
return this.http.post('http://dev.local/scripts/login.php', httpParams, {
headers: headerOptions
}).pipe(map(
res=>{
console.log('user '+res)
},
err=>
console.log(err)
))
}
单击按钮时,将使用此方法在 login.component.ts 内部调用此方法:
login(){
const user = this.loginGroup.get('username').value;
const pass = this.loginGroup.get('password').value;
this.auth.login(user, pass).subscribe(
(data)=>{
console.log(data);
this.loginGroup.reset();
},
(error)=>{
console.log(error)
}
)
}
问题是console.log(res)
来自 api 登录方法的返回值,但来自第二个登录方法的 `console.log(data) 返回未定义。
我想要的是在 上设置一些条件data
,所以我不能。
解决方案
如果要在控制台中返回并记录结果,请使用tap
运算符而不是map
return this.http.post('http://dev.local/scripts/login.php', httpParams, {
headers: headerOptions
}).pipe(tap(
res=>{
console.log('user '+res)
},
err=>
console.log(err)
))
推荐阅读
- node.js - Node.js中这两种连接MongoDB的方式有什么区别
- android - Android 可绘制动画
- ruby - 使用 Thor 创建嵌套子命令
- python - 将占位符添加到 Django 中的表单字段
- apache-nifi - NIFI——如何从 updateattributes 访问自定义变量到 groovy 脚本
- javascript - 使用未知键和未知值解析对象内部的数组
- reactjs - 如何从“semantic-ui-react”作为 Formik 道具为 Dropdown 编写 setFieldValue setFieldTouched 函数
- c# - 我可以使用 AutoMapper 将一个 int 映射到对象列表吗?
- java - 使用 jsoup 的 Java 网络爬虫问题
- javascript - 如何聚合 JSON 以显示每个相同值的计数