Explique en detalle los cuatro tipos de parámetros pasados por axios, y el backend recibe parámetros
Método 1. Enviar datos json al fondo a través del campo de datos (use "," para enviar datos)
//格式:axios.delete(服务器链接,{data:{键:值}})
axios.delete("/delete" , {data:{aid:row.aid}}).then(resp => {
let resultInfo = resp.data;
})
Datos enviados por el navegador front-end
referencia de back-end
Use @RequestBody para especificar que el parámetro recibido está en formato json , y luego el tipo de parámetro es Tipo de mapa , y los datos se recuperan a través de la clave del mapa.
/* 格式:
@DeleteMapping("/delete")
@RequestBody Map<String,前端发送的值的数据类型> 形参名
*/
@DeleteMapping("/delete")
public ResultInfo delete(@RequestBody Map<String,Object> params) {
System.out.println(params.get("aid"));
return new ResultInfo(true);
}
Datos recibidos por el servidor backend: {aid=11}
Método 2: envíe los datos json al fondo a través del campo de parámetros (use "," para enviar los datos), que en realidad se está empalmando en la URL.
// 格式:axios.delete(服务器链接,{params:{键:值}})
axios.delete("/delete" , {params:{aid:row.aid}}).then(resp => {
let resultInfo = resp.data;
})
Datos enviados por el navegador front-end
El backend recibe:
Use @RequestBody para especificar que los parámetros recibidos estén en formato json , y luego los parámetros pueden coincidir automáticamente por nombre .
@DeleteMapping("/delete")
public ResultInfo delete(Integer aid) {
System.out.println(aid);
return new ResultInfo(true);
}
Si el nombre del parámetro es inconsistente , use @RequestParam("nombre del parámetro pasado desde el front-end") para que coincida
@DeleteMapping("/delete")
public ResultInfo delete(@RequestParam("aid") Integer aaid) {
System.out.println(aaid);
return new ResultInfo(true);
}
Datos recibidos por el servidor backend: 107
Método 3. Empalme los datos directamente en la barra de direcciones y debe agregar "/" antes de empalmar
//格式:axios.delete("/服务器链接/"+值)
axios.delete("/delete/"+row.aid).then(resp => {
let resultInfo = resp.data;
if (resultInfo.success) {
this.$message({
type: 'success',
message: resultInfo.message
});
}
})
cliente
Recepción backend (servidor)
// 通过在 /{参数名} 得到访问方法,然后取值用@PathVariable("参数名")
@DeleteMapping("/delete/{aid}")
public ResultInfo delete(@PathVariable("aid") Integer aid) {
System.out.println(aid);
return new ResultInfo(true);
}
Método 4. Método tradicional Nombre del parámetro = valor del parámetro
axios.delete("/delete?aid="+row.aid).then(resp => {
let resultInfo = resp.data;
})
El servidor lo recibe directamente y coincide por nombre . Si los nombres son inconsistentes, use @RequestParam para buscar coincidencias .
@DeleteMapping("/delete")
public ResultInfo delete(Integer aid) {
System.out.println(aid);
return new ResultInfo(true);
}
Nota: get y delete son casi idénticos