我正在尝试通过AJAX将HTML数据传递到服务器。我最终希望将完整的HTML代码(包括任何内联CSS定义)存储在数据库中。我不想对HTML数据进行任何更改,只是按原样存储它。我的问题是,当我通过AJAX传递HTML数据时,当它到达服务器时,内联CSS已被剥离,但不仅如此,它被错误地剥离,留下无效的HTML。
以下是我正在尝试做的一个示例:
var the_html = {'html':'<p><span style="font-size:42px;"><span style="color:#f00;">
Some text</span></span></p>'};
$.ajax({
type: 'POST',
url: 'ajax.php',
data: the_html,
success: function (data) {
alert(data);
}
});
当数据到达服务器时,它看起来像这样:
<p><span>span style="color:#f00;">Some Text</span></span></p>
在我看来,jQuery试图剥离所有内联CSS,但是通过删除第二个span标记的开口尖括号来搞砸了第一个span标记。我尝试在通过AJAX发送之前转义数据,但结果是一样的。此外,我使用对象文字语法,因为我要传递的数据比示例中要多得多,并且我希望它在到达服务器时成为关联数组。
我不希望内联CSS被删除。我想将所有标记加上任何CSS完整地发送到服务器。关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
在javascript / frontend上用style1(或任何东西)替换样式 并再次在服务器端将它从style1替换回样式
示例:
$。AJAX({ url:base_url +'/ adminevent / dragDrop',data:{pid:p_id,content:data.replace('style','style1'),update:'update'}, type:'POST',success:function(res){// alert(res) }});
在服务器端(我的PHP):
str_replace函数( 'STYLE1', '风格',$内容)