警告: 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,打完收工!