我使用jquery.ajax来保存富文本区域。
corr=some.innerHTML(); /* corr='< some text <' */
$.ajax({
type:"POST", url:"flatplan/save_corr.php",
data:"corr="+corr+"&IDFS="+IDFILES,
success: function(msg){
},
error:function(x,e){
ajax_errors(x,e);
}
});
问题是corr变量可以包含'&amp;'内部的字符,它发送更多的参数 给出问题。有没有办法用ajax html文本发帖?
答案 0 :(得分:5)
您可以(并且应该)转义查询字符串组件with encodeURIComponent
。
data: "corr=" + encodeURIComponent(corr) + "&IDFS=" + encodeURIComponent(IDFILES),
编辑:jQuery可以接受数据字段中的Object。你应该使用
data: ({
corr: corr,
IDFS: IDFILES
}),
这样jQuery就可以自动编码查询字符串。
答案 1 :(得分:1)
corr值不能包含&
。如果是,则需要对该值进行urlencode。为此,请使用escape()
方法。
var corr = escape(some.innerHTML()); //(corr='< some text <')
$.ajax({
type:"POST",
url:"flatplan/save_corr.php",
data:"corr="+corr+"&IDFS="+IDFILES,
success: function(msg){
//success handler
},
error:function(x,e){
ajax_errors(x,e);
}
});
答案 2 :(得分:0)
我会亲自逃避所有html进入之前通过AJAX发布它并让php文件unescape结果或Sanity在处理之前检查PHP中的输入。我没有被这个人抓住,但我可以看到它可能是一个问题。