views:

262

answers:

4

I am using javascript (using jquery) to pass a # symbol as a GET parameter via AJAX call.

The problem right now is that the # symbol is breaking up my querystring.

Any help appreciated. Thanks!

+2  A: 

Use encodeURIComponent().

AlexV
encodeURIComponent() is superior to escape() as ecape will corrupt UTF-8 characters that are not in ISO-8859-1.
AlexV
+1  A: 

You will have to encode the url using escape, encodeURIComponent function, etc to pass that character. This will turn the characters into their % counter-partts. For example, # will be %23

Sarfraz
+6  A: 

You need to replace it with %23 in the string. However, instead of doing this directly you should use Javascript function encodeURIComponent to encode characters in the URL.

Alternatively, if you are using jQuery.ajax you can automatically encode parameters by passing them in via the data option.

Justin Ethier
+4  A: 

If you are passing the data parameter to jQuery.ajax, jQuery does the encoding for you. You shouldn't be trying to build the URL yourself.

$.ajax({ url : "http://myserver.com/mypage.aspx",
         data : {'key1' : 'value#', 'key2' : 'value&&'}
         ...
      });
Chetan Sastry
+1 This is probably the most elegant way to do this.
S Pangborn