URL中的Querystring和/#/

时间:2017-01-25 06:27:12

标签: html nginx

我们的新网址结构如下

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

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

2 个答案:

答案 0 :(得分:0)

你做不到:

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

解决方案:

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

  2. 使用urldecode作为$ _GET参数

  3. 阅读此Usage of Hash(#) in URL

答案 1 :(得分:0)

首先,它不起作用;但你可以做的一件事是,在页面上放一个javascript代码,在那里比较路线和&对API的AJAX请求(仅返回所需的数据)。伪代码可以,

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

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