使用delete时,有两种传参格式 {data: param} 与 {params: param}。与之相对应的后端接收时使用@RequestBody 与 @RequestParam 来接收。
第一种:
前端传参 {params: params} ,后端用 @RequestParams("id") 接参
前端:
deleteMessage(message) {
const param = { id : message.id };
axios.delete('api/deleteMessage', {params : param}).then((response) => {
this.messages.splice(this.messages.indexOf(message), 1);
});
}
后端:
@DeleteMapping("/api/deleteMessage")
public ResponseEntity<Message> deleteMessage(@RequestParam("id") Integer id) {
Message deleted = messageService.delete(id);
if ( deleted == null) {
return ResponseEntity.status(500).build();
}
return ResponseEntity.ok(deleted);
}
Request URL:
http://localhost:8080/api/deleteMessage?id=3
第二种:
前端通过 {data : param} 传参,后端通过 @RequestBody 接参。(MessageId 是封装了id 的类)
前端:
deleteMessage(message) {
const param = { id: message.id }
axios.delete('api/deleteMessage', {data : param}).then((response) => {
this.messages.splice(this.messages.indexOf(message), 1);
});
}
后端:
@DeleteMapping("/api/deleteMessage")
public ResponseEntity<Message> deleteMessage(@RequestBody MessageId messageId) {
Message deleted = messageService.delete(messageId.getId());
if ( deleted == null) {
return ResponseEntity.status(500).build();
}
return ResponseEntity.ok(deleted);
}
public class MessageId {
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
Request URL:
http://localhost:8080/api/deleteMessage