您的位置:首页 > 其它

关于web项目中中文乱码问题

2016-05-19 09:03 176 查看
前几天做的项目中,页面显示中文的时候出现了乱码,各种方法都试了一遍都不行(页面的字符编码改变,传到后台时进行转码以及更改tomcat的配置文件等等都不行),最后发现了一个问题就是用ajax往后台传递数据的时候post和get方式用混了,导致传递的数据有问题;

之前的代码:

function saveUserModConfig(configData) {
/* alert("saveUserModConfig");
configData['name']=$("#modName").val();
console.log(configData); */
return $.ajax({
type: 'POST',
url: 'saveSetPortalConfig.action?name=$("#modName").val()',
dataType: 'json',
cache: false,
data: configData,
traditional: true
});
}
后来发现用post方式传递的时候不能用?的形式来传递,否则会导致产生乱码;

更改之后:

function saveUserModConfig(configData) {
alert("saveUserModConfig");
configData['name']=$("#modName").val();
console.log(configData);
return $.ajax({
type: 'POST',
url: 'saveSetPortalConfig.action',
dataType: 'json',
cache: false,
data: configData,
traditional: true
});
}更改之后再进行测试,发现并没有出现乱码
现在总结一下post和get2种方式的区别以及各自的优缺点

1、 关于ajax中post和get2种类型的传递方式:

Get:

优点:简单方便,可以直接在url后面加上?name=xxx&passwors=xxx来进行传递

缺点:会造成一些信息的泄露;传递的数据量有限制

Post:

优点:通过隐藏参数的方式进行传递;传递的数据量无限制

缺点:url书写复杂,需要写变量才能进行准确传递

Eg:

 $.ajax({

               type:
'POST', 
--说明传递的方式

               url:
'saveSetPortalConfig.action',--要传递到的路径

               dataType:
'json',--传递数据时,数据在传输过程中采用的方式

               cache:
false
,

               data: configData,--要传递的数据

 traditional: true

          
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: