成功删除请求后如何接收ResponseEntity

时间:2020-07-10 16:01:50

标签: javascript angular spring-boot http

在我的数据库中删除一个实体后,我将一个ResponseEntity从我的后端(SpringBoot)返回到我的前端(Angular 10)。 因此,我在Angular中发出了这个HTTP请求:

this.http.delete<ResponseEntity<string>>(this.productsPath + '/' + id).subscribe(data => console.log(data.statusCode + data.body));    

为了接收响应,我创建了一个ResponseEntity接口:

interface ResponseEntity<T> {
headers: { [headerName: string]: string },
body: T,
statusCode: "OK" | "SERVER_ERROR" | "BAD_REQUEST", //etc
statusCodeValue: "200" | "500" | "400" | "404" //etc
}

现在在SpringBoot中,这是我的删除功能,它应该可以正常工作:

@DeleteMapping(value = "/products/{id}")
public ResponseEntity<String> deleteProduct(@PathVariable String id) {
    try {
        productService.deleteProduct(Long.parseLong(id));
        return ResponseEntity.status(HttpStatus.OK).body("Product deleted successfully.");
    } catch (Exception e) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Product doesn't exist in Database.");
    }
}

我的问题出在我想的Angular代码中,我真的不知道如何从Spring获取响应? 删除实体是可行的,但是我在Angular中登录到控制台的响应始终为null,因此出现错误:ERROR TypeError: data is null

编辑:这个问题就是为什么我使用接口方法:How to cast observable response to local object

0 个答案:

没有答案