关于$.ajax()中使用serialize()提交表单出现中文乱码问题

关于$.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请求方式进行提交表单

猜你喜欢

转载自blog.csdn.net/qq_36510947/article/details/82872606