How to pass % in a URL query string?
I am trying to pass a string via HTTP request which h开发者_开发知识库as one of the character as %
in the URL query string.
url = url + "?q=" + str + "&block=" + block; // str contains the '%' character
But on the ColdFusion page where I'm sending this information is returning following error:
Element Q is undefined in URL.
How can I encode the %
sign in a URL?
You should url-encode all the values you are passing as query parameters, but the url-encoding for % is %25
Update: if you're constructing the query parameters in javascript, you probably want to do:
url=url+"?q="+encodeURIComponent(str)+"&block="+encodeURIComponent(block)
(Updated again with ZeissS' very helpful suggestion to use encodeURIComponent
instead of escape
. See also http://xkr.us/articles/javascript/encode-compare/)
Pass your string trough the function encodeURI(...)
it will escape all the special characters not only the %
%25
http://www.w3schools.com/TAGS/ref_urlencode.asp
URLEncodedFormat() in ColdFusion
We can use URLEncodedFormat() in ColdFusion as well as we can use the below mentioned one.
- encodeURI(...)
- encodeURIComponent
This two also help us to resolve our issue.
精彩评论