js向action传值乱码_js代码解决url传值出现中文乱码的方法参考

有时需要把前台的中文数据通过URL的方式传递到后台,因为Java中网络传输使用的标准字符集是ISO-8859-1,所以在后台用request.getParameter("message");获取前台传过来的中文时,得到的还是ISO-8859-1字符集,中文就会出现乱码现象,有的解决办法是在前台传递中文之前进行decode,后台再decode一下进行转换,很是麻烦?

本文使用动态表单的方法来解决这个问题。

场景:KPI列表页面中,对每个KPI都有生成预警数据的功能,当点击列表中每个KPI生成数据的按钮时,需要把KPI的id和name传递到后台。

前端js实现的用URL传值的写法:

复制代码 代码示例:

function createData(indexId,indexName){

window.location.href="catalogAction.do?action=CreateIndexData&catalogId="+indexId+"&catalogName="+indexName+"&random="+Math.random();

}

用这种方法,由于KPI名称大多为中文,在后台接收到的值肯定为乱码。

若用动态生成表单的方式可以轻松解决:

复制代码 代码示例:

function createData(indexId,indexName){

var urlStr = "catalogAction.do?action=CreateIndexData&PcatalogId=&catalogId="+indexId+"&random="+Math.random();

var f= document.createElement('form');

f.action = urlStr;

f.method = 'post';

document.body.appendChild(f);

var temp=document.createElement('input');

temp.type= 'hidden';

temp.value=indexName;

temp.name='catalogName';

f.appendChild(temp);

f.submit();

}

对中文字段用form的方式提交过去,不是中文的仍然用URL传,如此便解决了向后台传递中文出现乱码问题,是不是很方便呢?

jquery中文网,祝大家学习进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值