ajax публикует специальные символы
-
21-09-2019 - |
Вопрос
Как мне передать большую строку, содержащую символы типа '%' и '&' , на мою php-страницу через ajax post?
Другими словами, как их кодировать на javascript и декодировать на php?
Решение
тот самый encodeURIComponent()
Функция JavaScript может быть использована для экранирования любого из этих символов либо в ключах, либо в значениях.
PHP автоматически получит и декодирует его в $_POST
массив.
Формат данных должен быть в формате строки запроса, в частности:
Content-Type: application/x-www-form-urlencoded
Например:
Name=Joe&Age=23&City=Altoona
Если вы используете encodeURIComponent()
по каждому ключу и каждому значению, затем соедините их с помощью =
, и сгруппируйте их по &
, у вас больше не возникнет никаких проблем.
Другие советы
Чтобы закодировать их в javascript, используйте encodeURI и encodeURIComponent
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp
PHP-Декодирование:
На самом деле вам не нужно что-то кодировать или декодировать, если вы используете параметр POST в методе отправки XMLHttpRequest.Только GET нуждается в такой кодировке, поскольку он использует поле URI.Вам следует быть осторожным при использовании этих данных в SQL-запросах.Остерегайтесь инъекций.