【问题标题】:How do I pass the # symbol as part of a GET querystring in the URL?如何在 URL 中将 # 符号作为 GET 查询字符串的一部分传递?
【发布时间】:2010-01-21 18:21:25
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery ajax get query-string


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        使用 encodeURIComponent()。

        【讨论】:

        • encodeURIComponent() 优于 escape(),因为 ecape 会破坏 ISO-8859-1 中不包含的 UTF-8 字符。
        【解决方案4】:

        您必须使用转义、encodeURIComponent 函数等对 url 进行编码以传递该字符。这会将字符变成他们的 % 对应部分。例如,# 将是 %23

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-13
          • 1970-01-01
          • 1970-01-01
          • 2020-11-29
          • 1970-01-01
          相关资源
          最近更新 更多