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

来源:互联网 发布:vscode 设置文件类型 编辑:程序博客网 时间:2024/05/22 03:03

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

一、按条件查询数据库,返回到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");
可以破解乱码。


0 0
原创粉丝点击