我正在通过jQuery将编码的HTML发送到我的python ajax处理程序。这是我的jQuery代码:
var animal_data = encodeURI( $('#animal-list-table').html() ); // something like this: %0A%20%20%20%20%20%20%20%20
mydata = 'action=send_mail&animal_data='+animal_data
$.ajax({
type: 'POST',
url: '/customer/templates/slakteweb/ajax-handler',
data: mydata,
processData: false,
success: function(result){
console.log(result);
}
});
在ajax处理程序中,我尝试过这样:
import urllib
animal_data = site.param('animal_data')
animal_data_html = urllib.unquote(animal_data).decode('utf8')
但我想打印HTML标签和所有内容,以便我可以将其作为HTML电子邮件发送。最好的方法是什么?
答案 0 :(得分:0)
对于POST数据,您不需要encodeURI函数,因为POST数据不是作为URI / URL的一部分发送的。如果不这样做,则无需在服务器端解码任何内容。
通常一个非常糟糕的想法是不验证从不受信任的来源(这里:浏览器)获得的输入。即使您认为在客户端进行整个编码,也要认为它不安全。长话短说:最好和最常用的方法是将内容解析为纯文本,而不是HTML。