方法有两个:第二个比较麻烦,推荐第一个
方法一:前端使用json发送post请求,后端不使用@RequestParam,转而使用@Param注解
前端代码如下:
$.ajax({
type: "POST",
url: "url",
data: {
"key" : value
},
dataType: "JSON",
success: function(result) {
}
});
后台代码
@PostMapping("")
public void method(@Param("key1")Long key1,@Param("key2")Long key2,@Param("key3")String key3){
}
方法二ajax模拟form表单提交,前端代码格式如下,需要保持我这个格式,自测后台的@RequestParam是可以接收到参数的
前端代码
//写法和json类似,前面是键,后面是值
var formData = new FormData();
formData.append("username",vm.username);
formData.append("password",vm.password);
formData.append("mobilePhone",vm.mobilePhone);
formData.append("code",vm.code);
formData.append("id",id);
$.ajax({
type: "post",
url: url,
data : formData,//模拟表单发送post请求
async:false,
contentType: false,/*post请求默认是contentType: "application/x-www-form-urlencoded",如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。*/
processData: false,
dataType:'text',
success: function (data) {
window.location.href="login.html";
},
error: function (e) {
console.log(e.status);
console.log(e.responseText);
}
})
后台代码
@PostMapping("registry")
public ResponseEntity<Void> registry(
@RequestParam("username")String username,
@RequestParam("password")String password,
@RequestParam("id")Long id,
@RequestParam("mobilePhone")Long mobilephone,
@RequestParam("code")int code){
//写你自己的代码,后台不一定需要像我的这种风格写,用@RequestParam可以收到参数的
return ResponseEntity.ok().build();
}