ajax post special characters

ぃ、小莉子 提交于 2019-12-18 05:56:24

问题


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?


回答1:


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.




回答2:


To encode them in javascript, use encodeUri and encodeUriComponent

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


PHP Decode:

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




回答3:


You actually don't need to encode or decode something, if you use POST parameter in send method of XMLHttpRequest. Only GET needs such and encoding, since it uses URI field. You should be careful when using this data in SQL requests. Beware of injections.



来源:https://stackoverflow.com/questions/1954502/ajax-post-special-characters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!