Как да предам символа # като част от GET низ на заявка в URL адреса?

Използвам javascript (използвайки jquery), за да предам символ # като GET параметър чрез AJAX извикване.

Проблемът в момента е, че символът # разбива моя низ от заявки.

Всяка помощ се оценява. Благодаря!


person resopollution    schedule 21.01.2010    source източник


Отговори (4)


Трябва да го замените с %23 в низа. Въпреки това, вместо да правите това директно, трябва да използвате функцията на Javascript encodeURIComponent, за да кодирате знаци в URL адреса.

Като алтернатива, ако използвате jQuery.ajax, можете автоматично да кодирате параметри, като ги подадете чрез опцията data.

person Justin Ethier    schedule 21.01.2010

Ако предавате параметъра данни на jQuery.ajax, jQuery прави кодирането вместо вас. Не трябва да се опитвате сами да създадете URL адреса.

$.ajax({ url : "http://myserver.com/mypage.aspx",
         data : {'key1' : 'value#', 'key2' : 'value&&'}
         ...
      });
person Chetan S    schedule 21.01.2010

Използвайте encodeURIComponent().

person AlexV    schedule 21.01.2010
comment
encodeURIComponent() е по-добър от escape(), тъй като ecape ще повреди UTF-8 символи, които не са в ISO-8859-1. - person AlexV; 21.01.2010

Ще трябва да кодирате URL адреса с помощта на escape, функция encodeURIComponent и т.н., за да предадете този знак. Това ще превърне героите в техните % противоположни части. Например # ще бъде %23

person Sarfraz    schedule 21.01.2010