关于$.ajax()中使用serialize()提交表单出现中文乱码问题
提交多个数据时,不需要一个一个将获取的值传给ajax,可以直接使用```$(
“form”).serialize(),将其表单序列化的值传给ajax()作为data的参数。 后台可以直接用对象封装。
jsp代码:
$.ajax({
type:"post",
url:"org/add",
data:$("#form-admin-add").serialize(),
success:function(dat){
if(data.result){
alert(data.data);
}
}
})
Controller代码:
@ResponseBody
@RequestMapping("add")
public SysResult<String> add(SysOrg sysOrg){
System.out.println(sysOrg);
System.out.println(sysOrg.getOrgName());
int result = orgService.insertSelective(sysOrg);
if(result > 0){
return new SysResult<String>(true, "添加成功");
}
return new SysResult<String>(false, "添加失败");
}
关于序列化表单之后出现的中文乱码问题原因及解决方案:
(1)原因:使用ajax请求之后,当没有设定请求的type时,默认采用的是get请求方式,而get请求方式要采用(String)request.getParameter(“username”),“utf-8”);对每个中文进行单独的转码才能解决乱码问题
(2)解决方案:使用post请求方式进行提交表单