问题描述 : ajax请求url中如果包含中文字符参数值,后台程序获取的参数值出现乱码问题。
/**
*判断用电客户安装设备的计量方式:1、 高压计量 2、低压计量;加载对应的设备关系图片 @H_403_7@ */ @H_403_7@ function getMeterLevel(consName){ @H_403_7@ $.ajax({ @H_403_7@ url:"CONSAnalyse_getMeterLevelFlag.action?cons_name="+consName,// consName: 南京 @H_403_7@ type:'POST',@H_403_7@ dataType:"json",@H_403_7@ error:function(){ @H_403_7@ alert("系统忙,获取数据失败!"); @H_403_7@ },@H_403_7@ success:function(data){ @H_403_7@ if(data["result"] == "true"){ //高压计量 @H_403_7@ $(".title2 img ").attr("src","../images/productHighVMeter.png"); @H_403_7@ }else{ //低压计量 @H_403_7@ $(".title2 img ").attr("src","../images/productLowVMeter.png"); @H_403_7@ } @H_403_7@ } @H_403_7@ }); @H_403_7@}
原因分析:URL中使用中文等非ASCII的字符造成服务器后台程序解析出现乱码。
解决方式:url中的参数在 data属性中封装,此处字符编码格式使用 utf-8@H_403_7@
/**
*判断用电客户安装设备的计量方式:1、 高压计量 2、低压计量;加载对应的设备关系图片 @H_403_7@ */ @H_403_7@ function getMeterLevel(consName){ @H_403_7@ $.ajax({ @H_403_7@ url:"CONSAnalyse_getMeterLevelFlag.action",@H_403_7@ type:'POST',data:{ "consName": consName},@H_403_7@ dataType:"json",@H_403_7@ error:function(){@H_403_7@ alert("系统忙,获取数据失败!");@H_403_7@ },@H_403_7@ success:function(data){@H_403_7@ if(data["result"] == "true"){ //高压计量@H_403_7@ $(".title2 img ").attr("src","../images/productHighVMeter.png");@H_403_7@ }else{ //低压计量@H_403_7@ $(".title2 img ").attr("src","../images/productLowVMeter.png");@H_403_7@ } @H_403_7@ }@H_403_7@ });@H_403_7@
}