最近的需求涉及级联查询。需要根据上层下拉框的内容查询下层下拉框的列表。因为只有两级级联,后期表中的数据几乎不会发生变化,所以我设计的表直接用中文存储。
菜单如下:
代码如下:
var URL=' $ { basePath }/institutionConfig/getdepartmentbycenter . do?param=' center$.get(url,function(data){ var list=data . data;for(var I=0;一、清单.长度;I){ department selector=' option value=' list[I]' ' ';if(部门列表[i]==部门){ department selector=' selected=' selected ';} Department Selector=' list[I]'/option ';} $('#accountDepartmentAdd ')。html(Department Selector);});我用了美元。GET(url,回调)将请求发送到后台。因为参数是在get模式下直接发送的,所以浏览器用URL对参数进行编码,后台得到的参数有:
如您所见,param收到了乱码。所以我做了进一步的处理,也就是转码:
字符串中心=新字符串(param.getBytes('iso8859-1 ',' utf-8 ');所以你收到的是中文。
然而,这种方法实际上在测试环境中报告了一个错误。分析原因后发现,测试环境收到的中文是正确的,但转码后却是错误的。因此,解决方案应该是请求更改页面。因为使用GET对参数进行了编码,所以改为POST请求,POST请求将提交原始数据:
var URL=' $ { basePath }/institutionConfig/getdepartmentbycenter . do ';$.ajax({ url: url,data: {'param': center}),dataType: 'json ',type: 'POST ',success:函数(data){ var list=data . data;for(var I=0;一、清单.长度;I){ department selector=' option value=' list[I]' ' ';if(部门列表[i]==部门){ department selector=' selected=' selected ';} Department Selector=' list[I]'/option ';} $('#accountDepartmentAdd ')。html(Department Selector);} });摘要
以上就是边肖介绍的jQuery发送的中文参数乱码问题的解决方案。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!