我在项目中集成了tinymice富文本, 当用户输入富文本(包含图像和其他丰富内容)时,我通过ajax调用将内容传递给struts操作方法,然后将其发送到服务器。
tinymce.activeEditor.getContent();
以上行返回如下内容
<p>Test tinymice text content</p>
<p> </p>
<p>with multi line text</p>
<p> </p>
<p>And <strong>Bold text</strong></p>
我将其发送到服务器的内容相同。 但问题是由于一些特殊的符号可能 在struts方面,我没有得到确切的数据。
在struts中我得到的数据如下
<p>Test tinymice text content</p>
<p>
面对图像问题。当我从服务器获取数据时,我获得了有效数据但面临""
个字符的问题。示例图像数据如下所示,它在jsp中显示错误为 - Uncaught SyntaxError: Unexpected identifier
错误主要是由于使用了不正确的""
字符。我应该如何将富文本发送到struts和to server?在DB中我将其存储为blob
"<p><img src="data:<;base64,<;base64,image/png;base64,
更新 -
我的ajax代码
var postTitle = document.getElementById("title").value;
var postDescription = tinymce.activeEditor.getContent();
var formdata = "title="+postTitle+"&"+"description="+postDescription;
// call function for handling Ajax part
$.ajax({
type: "POST",
url : "postDetails" ,
contentType: "application/x-www-form-urlencoded",
async: true,
data : formdata,
cache: false,
processData: false,
datatype: json,
success: successBlock,
error: failureBlock
});
当我发出提醒
时,上面代码中的表单数据如下所示 title=test&description=<p>Test tinymice text content</p>
<p> </p>
<p>with multi line text</p>
<p> </p>
<p>And Bold text</p>
Struts代码
public class DescriptionAction {
String title;
String description;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
//Action method
public String postDescription(){
//Here my server request goes
}
}
答案 0 :(得分:1)
我找到了问题的答案。 我必须在发布数据之前使用encodeURI 更新了ajax代码
//Remove form data
//var formdata = "title="+postTitle+"&"+"description="+postDescription;
// call function for handling Ajax part
$.ajax({
type: "POST",
url : "postDetails" ,
//Remove contentType , it should not be form urlencoded
// contentType: "application/x-www-form-urlencoded",
// async: true,
//Use encodeURI to get rid of special characters within richText
data :{title:postTitle,description:encodeURI(postDescription)},
// cache: false,
// processData: false,
datatype: json,
success: successBlock,
error: failureBlock
});