当我尝试消耗响应时,出现此错误 “ ReferenceError:未定义响应”
我的回复格式为
{
"status":"success",
"data":[
{
"employeeId":2,
"employeeCode":"e1",
"employeeName":"Komal",
"departmentId":1,
"designationId":1,
"reportingEmployeeId":1,
"mobileNumber":"9797979797",
"emailId":"komal@gmail.com",
"joiningDate":"2019-09-08T00:00:00",
"departments":null,
"designations":null
}
]
}
下面是我的代码
GetAllEmployee() {
this.employeeService.getAllEmployee().subscribe((response) => this.employees = response.body.data);
}
这是我的前端代码
<tr *ngFor="let employee of employees">
<td>
{{employee.EmployeeCode}}
</td>
<td>
{{employee.EmployeeName}}
</td>
<td>
{{employee.MobileNumber}}
</td>
<td>
{{employee.EmailId}}
</td>
<td>
{{employee.JoiningDate}}
</td>
</tr>
我做错了。请建议我。
答案 0 :(得分:0)
使用:
this.employeeService.getAllEmployee()
.subscribe((response) => {
this.employees = response.data;
}, (err) => {
console.error('Failed with : ', err);
});
还要交叉检查api是否返回成功的响应。
答案 1 :(得分:0)
我认为此错误可能是由多种原因引起的,您应该检查以下这些原因:
1)检查API的响应,例如从请求返回的数据(显示在Chrome的“网络”标签中,您必须单击请求并选中“响应”标签),HTTP状态(可能是您正在返回数据,但HTTP状态错误)。
2)检查响应的格式,通常如您所显示的那样是JSON,但可能不是有效的JSON,您可以通过复制响应并将其插入https://jsonlint.com/
来进行检查3)检查响应是否已解析,有时来自API的响应是有效的,但未解析为JSON(我相信版本5起,Angular会自动执行此操作),您可以通过将响应包装在像这样的JSON.parse函数:JSON.parse(response)。
4)Angular无法自动识别响应的结构,我通常在响应中添加一个“ any”类型,以便Typescript不会抱怨响应对象的属性,例如:“ ... (响应:任意)=> console.log(response)...“。
5)检查函数“ getAllEmployee()”是否从“ @ angular / common / http”返回有效的http对象,并且是否具有有效的配置(例如HttpHeaders或“ withCredentials:true”)(如果您是使用身份验证)。
无论如何,最好的办法是将响应记录到控制台并向我们显示内容,请尝试使用以下代码:
this.employeeService.getAllEmployee()
.subscribe(
(response: any) => console.log(response),
(err) => console.error('Failed with : ', err),
() => console.log('getAllEmployee finished...')
);