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

本文探讨了使用$.ajax()和serialize()提交表单时遇到的中文乱码问题,详细分析了原因并提供了改用POST请求的解决方案。通过调整请求方式,有效避免了中文乱码,确保了前后端数据交互的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值