ajax post special characters

Glenn picture Glenn · Dec 23, 2009 · Viewed 29.1k times · Source

How do I pass a a large string containing characters like '%' and '&' to my php page through ajax post?

In other words how to javascript-encode them and php-decode them?

Answer

gahooa picture gahooa · Dec 23, 2009

the encodeURIComponent() JavaScript function can be used to escape any of those characters in either the keys or the values.

PHP will receive and decode it automatically into the $_POST array.

The format of the data should be Query String format, specifically:

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

For example:

Name=Joe&Age=23&City=Altoona

If you use encodeURIComponent() on each key and each value, then join them with =, and group them by &, you won't have any further issues.