I am having a problem here. When I use ajax to pass a parameter containing "+" to my controller it is being replaced by a space.
Example, I will pass value = Tom+Jerry+Garfield
using ajax. When I use System.out.println() in my controller it displays Tom Jerry Garfield
. I tried using other special characters I don't seem to have a problem.
Please help. Thanks in advance.
In some GET
and POST
requests (most likely in the URL, or via a form), spaces are encoded as "+" (plus) symbols before they are passed to the server. You can see this behaviour if you do a normal GET
request - you will see something like google.com?q=test+example
If you want to pass a plus symbol via an ajax GET/POST request, you need to "urlencode" it. The URL encoded value for +
is %2B
.
Also note:
The javascript encodeURIComponent() function can be used, as answered in:
AJAX POST and Plus Sign ( + ) -- How to Encode?
+
is decoded as space after url decoding. If you want to pass +
, you need to encode it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With