AJAX пост специальные символы - PullRequest
7 голосов
/ 23 декабря 2009

Как передать большую строку, содержащую такие символы, как «%» и «&» на мою страницу php через пост ajax?

Другими словами, как javascript-кодировать их и php-декодировать их?

Ответы [ 3 ]

18 голосов
/ 23 декабря 2009

Функция JavaScript * encodeURIComponent() может использоваться для экранирования любого из этих символов либо в ключах, либо в значениях.

PHP автоматически получит и расшифрует его в массив $_POST.

Формат данных должен быть в формате Query String, а именно:

Content-Type: application/x-www-form-urlencoded

Например:

Name=Joe&Age=23&City=Altoona

Если вы используете encodeURIComponent() для каждой клавиши и каждого значения, затем соедините их с помощью = и сгруппируйте их по &, у вас больше не возникнет никаких проблем.

2 голосов
/ 23 декабря 2009

Чтобы кодировать их в javascript, используйте encodeUri и encodeUriComponent

http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp


PHP Decode:

http://php.net/manual/en/function.urldecode.php

1 голос
/ 23 декабря 2009

На самом деле вам не нужно что-то кодировать или декодировать, если вы используете параметр POST в методе отправки XMLHttpRequest. Только GET нуждается в таком и кодировании, так как использует поле URI. Вы должны быть осторожны при использовании этих данных в запросах SQL. Остерегайтесь инъекций.

...