ExtJS4中Ajax提交中文参数乱码问题

自己遇到的两种情况,处理方式都不一样。

一、按条件查询数据库,返回到grid中的store时,请求的条件参数存在中文

var storeCombo = new Ext.data.Store({
                        singleton: true,
                        proxy: {
                            type: 'ajax',
                            url: 'comboList',
                            actionMethods: 'post',//这个地方添加一下可以解决
                            reader: {
                                type: 'json',
                                root: 'root'
                            }
                        },
                        fields: ['ACCOUNT_AREA'], 
                        autoLoad: true
                    });
 handler : function() {<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
     var myarea =encodeURIComponent(Ext.getCmp('combobox').getRawValue());
     var myarea =Ext.getCmp('combobox').getRawValue();<span style="font-family: Arial, Helvetica, sans-serif;">    </span>
     storeAnalysis.on('beforeload', function(store, options) {
     var new_params = {area : myarea};
     Ext.apply(store.proxy.extraParams,new_params);
});
storeAnalysis.load({
params : {
     start : 0,
     limit : 8
}

二、在button中直接Ext.Ajax的时候,类似的方法不起作用,API中关于Ext.Ajax的一个配置属性中说:

method  : String

默认使用的HTTP请求方式。注意,这个配置项是大小写敏感的,所有字母都应该大写(如果你没有设置这个配置项,但是存在请求参数,那么将会 使用"POST",否则将会使用"GET"。)。

默认是POST。

仍然乱码。解决方法:

js文件中给请求的参数转码两次:

Ext.Ajax.request({
    url: 'postFeedback?radio1='+encodeURI(encodeURI(radio1)),
    method:'post',
    success: function(response) {
         Ext.Msg.alert('~~~','提交成功!');
    }
同时,后台文件转码一次:

	String r1 = URLDecoder.decode(radio1,"UTF-8");
可以破解乱码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值