现在的位置: 首页 > 综合 > 正文

警告: Parameters: Character decoding failed. Parameter skipped. java.io.CharConversionException: isHex

2018年01月28日 ⁄ 综合 ⁄ 共 1464字 ⁄ 字号 评论关闭

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


抱歉!评论已关闭.