今天做项目时发现一个奇妙的现象。用json异步传输往后台传输富文本编辑器中的编辑内容时,纯文本是没有任何问题的,但是一旦加上图片,有的时候就会丢失内容,后台接受的内容就变成null,有时候又不会。上网查了一下也没什么有用的信息,最后自己测试的时候,发现前台获取编辑器的编辑内容是没问题的,就是后台接受的时候接收到空。我的富文本编辑器的ueditor,他是将我们放置的图片存在自己的后台,编辑内容中是用引用路径代替的,所以我怀疑的/之类的转移标志搞的鬼,于是我就将编辑器文本存到数组中,将数组传到后台,后台在将数组的值取出来就解决这个问题了!
js创建数组对象:
function modifyEditor(){
var ue = UE.getEditor('editor');//获取富文本编辑器对象
var ueditorText=ue.getContent();//带标签
var arr1 = new Array();/*创建数组对象 */
arr1[0]=ueditorText;
var arr1json=JSON.stringify(arr1);/* 将数组变为json对象,进行传值 */
$.ajax({
type:'POST',
async:false,
dataType:"json",
url:"deleteFile_modifyJson.action",
data:{"ueditorText1":arr1json},
success:function(data){
alert("修改成功");
},
else:function(){
alert("调用数据失败");
}
});
}
后台接收:
response.setContentType("text/html");
//json接受数组对象,并且转化为后台能用的数组对象
String ueditorText=request.getParameter("ueditorText1");
JSONArray json1=JSONArray.fromObject(ueditorText);
String ueditorText1=(String)json1.get(0);//ueditorText1这个就是我们存数组中的内容了!