警告: Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit
用Ajax获取Kindeditor的textarea的值的时候要用name标记,因为这样不会出现JS浏览器兼容的问题
例如:
<span style="font-size:18px;">var v_zsContext=$("TEXTAREA[name='zsContext']").val();</span>
那么问题来啦?
利用Ajax向服务器传送大量数据有可能传不完整
例如:
$.getJSON(resUrl, {
profe:chk_value,
email:v_email,
oldPwd:old_pwd,
newPwd1:new_pwd1
},function(data){
if(data==0){
$('.info').eq(2).children().last().children("span").text('旧密码不正确,请重新输入!');
}
if(data==1){
alert('修改成功');
}
if(data==0){
alert('修改失败');
}
});
当变量的值大的时候传不完整,这是怎么办?别担心有办法!!
$.ajax({
type:"POST",
url:speUrl,
data:"speReskey="+v_speReskey+"&speTitle="+v_speTitle+"&zsTitle="+v_zsTitle+"&zsContext="+v_zsContext+"&speType="+v_speType,
success: function(msg){
var data=JSON.parse(msg);
if(data.type==0){
alert("保存成功!");
$("#speReskey").val(data.speReskey);
}else{
alert("保存失败!");
}
}
});
注意type一定要用POST,因为GET有字节限制,但是用$.ajax返回过来的时msg是String类型,所以要把String转化为Json类型
例如:
var data=JSON.parse(msg);
if(data.type==0){
alert("保存成功!");
$("#speReskey").val(data.speReskey);
}else{
alert("保存失败!");
}
还有一点特别注意:
v_zsContext=encodeURI(v_zsContext);
v_zsContext=encodeURI(v_zsContext);
数据要经过两次的转换,一次不行,但是此方法有缺陷,对于编辑器插入的表格不能完整的传入数据库,所以采用:
v_zsContext=encodeURIComponent(v_zsContext);
v_zsContext=encodeURIComponent(v_zsContext);
这样就可以了,但是后台得到的都是%3Ctable%20style%3D%22width%3A100%25%3B%22%20bo这样的字符,如果想存入数据库的数据为能看懂的汉字,需要在后台处理一下:
String zsContext=request.getParameter("zsContext");
zsContext = java.net.URLDecoder.decode(zsContext,"UTF-8");
OK,打完收工!
版权声明:本文为xiaomi0601原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。