繁体   English   中英

Angular $位置。 如果用户使用hashbang提交URL,如何在html5Mode(true)中解析查询字符串?

[英]Angular $location. How could be parsed a query string in html5Mode(true) if user submit an URL with hashbang?

我正在开发一个搜索页面,并且要求在URL中存储所有选定的过滤器和其他状态 ,以便用户可以共享其作业的结果。

我使用angular $ location.search()来更新和解析URL。 位置提供商设置如下:

$locationProvider.html5Mode(true).hashPrefix('!');

旧版浏览器的用户与使用现代浏览器的用户共享带有hashbang的链接时,问题就开始 在这种情况下,$ location.search()将不返回任何内容。

据我所知,原因是在html5模式后“#”启动$ location.hash()而不是$ location.search()。 但是hashPrefix('!')的目标是什么? 我认为应该解决这个问题......

如果用户使用hashbang提交URL,我怎么能解析html5Mode中的查询字符串(true)?

好吧,如果您要将html5Mode设置为true,那么它将处理Angular中的所有路由,但它并不反映服务器如何路由到您的应用程序。 您现在可能已经为hashbang设置了路由,但是如果您还在没有它们的情况下提供服务器上的路由该怎么办?

根据我的理解,如果您将html5Mode设置为true并且旧版浏览器不支持它,它将自动回退到散列标记路由。 如果有人要捕获该URL,然后与朋友分享,并且您在服务器上获得了支持,以便在任何情况下正确地将查询,路由和深层链接转换为您的Angular应用程序,似乎您将被覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM