【问题标题】:How to get parameter come after '#' in Perl CGI?如何在 Perl CGI 中获取“#”之后的参数?
【发布时间】:2012-01-14 00:17:16
【问题描述】:

我们如何从下面提到的 url 中获取文件夹的值:

http://my.indiamart.com/cgi/​my-enquiries.mp#folders=1

我尝试过 CGI 对象、%ENV 变量和很多东西,但仍然无法得到它。

请建议..

【问题讨论】:

标签: perl url parameters cgi


【解决方案1】:

你不能,浏览器解释片段 (#folders=1) 而不将其发送到服务器。因此,如果 http://my.indiamart.com/cgi/​my-enquiries.mp 是您的脚本,那么它将永远不会看到 URL 的 #folders=1 部分,因为浏览器不会发送它。如果您需要服务器上的片段,则必须将其更改为 CGI 参数:

http://my.indiamart.com/cgi/​my-enquiries.mp?folders=1

或将其嵌入 URL 路径中,类似于以下之一:

http://my.indiamart.com/cgi/​my-enquiries.mp/1
http://my.indiamart.com/cgi/​my-enquiries.mp/folders=1

【讨论】:

    【解决方案2】:

    你不能,# 只能被 JavaScript 识别,
    apache 将忽略这一点,这就是它在 ENV 变量中不包含任何值的原因。

    您可以使用 JavaScript:window.location.hash 来捕获此哈希值。

    【讨论】:

    • Apache 不会忽略 #。 Apache 没有收到#
    【解决方案3】:

    仅适用于 javascript。 您可以使用类似的东西重定向到另一个脚本

    <script>                                                                                                                                                                                                           
    if(window.location.hash) {                                                                                                                                                                                         
      var str = window.location.hash.substring(1);                                                                                                                                                                     
      window.location.href = 'http://other_script.pl?param=' + str;
    }                                                                                                                
    </script>                                                   
    

    【讨论】:

      猜你喜欢
      • 2014-04-18
      • 2013-02-12
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2013-05-26
      • 2011-06-24
      相关资源
      最近更新 更多