【问题标题】:Querystring and /#/ in URLURL 中的查询字符串和 /#/
【发布时间】:2017-06-10 05:38:27
【问题描述】:

我们的新 URL 结构如下所示

http://domain.com/#/test?utm_source=test&utm_medium=test

我们需要在 URL 中保留 #(哈希符号),因为应用程序依赖于它,但同时我们还需要查询字符串才能工作,但问题是如果 URL 包含 # 并且应用程序/服务器甚至没有,浏览器将从请求中跳过查询字符串收到他们。

【问题讨论】:

    标签: html nginx


    【解决方案1】:

    首先,它不起作用;但是您可以做的一件事是,在页面上放置一个javascript 代码,您可以在其中将路由和 AJAX 请求与 API 进行比较(仅返回所需的数据)。伪代码可以,

    window.onload = function(){
      if(window.location.hash == "you needed"){
         xhr(url_needed_with_json_or_xml);
      }
    }
    

    注意:缺点是您可能需要将路由保留在客户端 js,否则请更改基于哈希的 url 路由。

    【讨论】:

      【解决方案2】:

      你不能这样做:

      https://en.wikipedia.org/wiki/Fragment_identifier 由井号 # 引入的片段标识符是文档 URL 的可选最后部分。它通常用于标识该文档的一部分。通用语法在 RFC 3986 中指定。URI 中的哈希标记分隔符不属于片段标识符。

      解决方案:

      1. 省略此标签并始终在此路由位置使用主题标签

      2. 作为 $_GET 参数与 urldecode 一起使用

      阅读此Usage of Hash(#) in URL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多