axios将参数传递到后端(@RequestBody),结果该参数为空



我的前端代码:

// the img64 here does received data from client with a long char sequence 
console.log(img64);
axios.post(serverUrl + '/adminMng/adminFaceLogin',
{
username: username,
img64: img64
})
.then(res => {
console.log(res.data);
if (res.data.status == 200) {                               
alert("Face recognition successful! Click to confirm to enter the system");
window.location = app.adminIndexUrl;
} else {
alert(res.data.msg);
}
});

AdminLoginBO是:

public class AdminLoginBO {
private String username;
private String password;
private String image64;
// getter and setter
...
}

AdminMngControllerApi是

@RequestMapping("/adminMng")
public interface AdminMngControllerApi {
@PostMapping("/adminFaceLogin")
GraceJSONResult adminFaceLogin(@RequestBody AdminLoginBO adminLoginBO,
HttpServletRequest request,
HttpServletResponse response);
}

AdinMngControllerApi的实现类是:

@RestController
public class AdminMngController implements AdminMngControllerApi {
@Override
public GraceJSONResult adminFaceLogin(AdminLoginBO adminLoginBO, HttpServletRequest request,
HttpServletResponse response) {

String username = adminLoginBO.getUsername(); // this value is valid, eg: "andrew"
String image64 = adminLoginBO.getImage64(); // but this value is null

//face login logics
...
}
}

来自前端的两个参数都从客户端接收到有效值,但是当它进入后端时,"用户名";变量接收到值,但是"img64";变量为空

这是因为前端发送的对象的名称是img64,而AdminLoginBO需要一个image64作为名称。对于用户名,两个对象都匹配名称。

可以将img64: img64改为image64: img64