HTML кодирование, декодирование с помощью Python
Я отправляю закодированный HTML в мой обработчик Python ajax с помощью jQuery. Вот мой код 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. Каков наилучший способ сделать это?
1 ответ
Для данных POST вам не нужна функция encodeURI, поскольку данные POST не отправляются как часть URI/URL. Если вы этого не сделаете, вам также не нужно ничего декодировать на стороне сервера.
Как правило, это очень плохая идея - не проверять ввод, полученный из ненадежного источника (здесь: браузер). Даже если вы думаете, что делаете все кодирование на стороне клиента, считайте это небезопасным. Короче говоря: лучший и наиболее распространенный способ - анализировать содержимое как обычный текст, а не как HTML.