Explique en detalle los cuatro tipos de parámetros pasados por axios, y el backend recibe parámetros

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

 

Supongo que te gusta

Origin blog.csdn.net/weixin_56602545/article/details/130001392
Recomendado
Clasificación