jquery的$('#theForm').serialize()获取表单数据,ajax传递到服务器中文乱码。

解决AJAX GET请求乱码问题
本文介绍了一个常见的AJAX请求中遇到的数据乱码问题及其解决方案。通过将请求方式从默认的GET改为POST,成功解决了传送到后台的数据出现乱码的情况。

var params = $('#theForm').serialize();
			params = decodeURIComponent(params,true);
			
			$.ajax({
				url : "$!webPath/cart_address_save_ajax.htm",
				dataType : "JSON",
				data : params,
				success : function(data) {
					var areaInfo = "";
					if(data.area_info){
						areaInfo = data.area_info + areaInfo;
					}
					if(data.area && data.area.areaName){
						areaInfo = data.area.areaName + areaInfo;
						if(data.area.parent && data.area.parent.areaName){
							areaInfo = data.area.parent.areaName + areaInfo;
							if(data.area.parent.parent && data.area.parent.parent.areaName){
								areaInfo = data.area.parent.parent.areaName + areaInfo;
							}
						}
					}
					$('#name').val(data.trueName);
	  				$('#zip').val(data.zip);
	  				$('#tel').val(data.mobile);
	  				$('#place').val(areaInfo);
  					$("#addr_id").val(data.id);
  					$('#newAdd').hide();
  					$(".mark").hide();
				}
			});

这样写传到后台,获取的时候还是会出现乱码。后来发现ajax默认是get的传值方法。后来改成post就没有问题了:

var params = $('#theForm').serialize();
			params = decodeURIComponent(params,true);
			
			$.ajax({
				url : "$!webPath/cart_address_save_ajax.htm",
				dataType : "JSON",
				type : "POST",
				data : params,
				success : function(data) {
					var areaInfo = "";
					if(data.area_info){
						areaInfo = data.area_info + areaInfo;
					}
					if(data.area && data.area.areaName){
						areaInfo = data.area.areaName + areaInfo;
						if(data.area.parent && data.area.parent.areaName){
							areaInfo = data.area.parent.areaName + areaInfo;
							if(data.area.parent.parent && data.area.parent.parent.areaName){
								areaInfo = data.area.parent.parent.areaName + areaInfo;
							}
						}
					}
					$('#name').val(data.trueName);
	  				$('#zip').val(data.zip);
	  				$('#tel').val(data.mobile);
	  				$('#place').val(areaInfo);
  					$("#addr_id").val(data.id);
  					$('#newAdd').hide();
  					$(".mark").hide();
				}
			});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值