如何在URL中传递#符号作为GET查询字符串的一部分?

时间:2010-01-21 18:21:26

标签: javascript jquery ajax get query-string

我正在使用javascript(使用jquery)通过AJAX调用将#符号作为GET参数传递。

现在的问题是#符号正在分解我的查询字符串。

任何帮助表示赞赏。谢谢!

4 个答案:

答案 0 :(得分:6)

您需要在字符串中将其替换为%23。但是,不应直接执行此操作,而应使用Javascript函数encodeURIComponent对URL中的字符进行编码。

或者,如果您使用的是jQuery.ajax,则可以通过data选项传入参数来自动编码参数。

答案 1 :(得分:4)

如果要将data参数传递给jQuery.ajax,jQuery会为您执行编码。您不应该尝试自己构建URL。

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

答案 2 :(得分:2)

使用encodeURIComponent()。

答案 3 :(得分:1)

您必须使用escape,encodeURIComponent函数等对url进行编码以传递该字符。这会将角色变成他们的%对手。例如,#将是%23