目前我正在研究帆的重定向功能,因为我得到以下格式的网址:
http://localhost:1337/dashboardview/58fdcb172c88812c5126a753#comment-3580520163
因为我无法解析Hash片段值(#comment-3580520163
)。我尝试使用req.url()
和req.path()
,但我仍然没有收到#片段。
在帆中是否有方法可以使用散列片段获取整个URL,或者我们是否有任何模块来获取#片段。
我是帆的新手。请帮我找到解决方案。
先谢谢。
答案 0 :(得分:0)
浏览器不会将其发送到服务器,只能在客户端上使用。
片段标识符的功能与URI的其余部分不同:即,它的处理完全是客户端,没有 从服务器参与 - 当然服务器通常有帮助 确定MIME类型,并确定MIME类型 处理碎片。当代理(例如Web浏览器) 从Web服务器请求资源,代理将URI发送到 服务器,但不发送片段。相反,代理等待 服务器发送资源,然后代理处理 资源根据文档类型和片段值。[2]
答案 1 :(得分:0)
由于HTTP规范当前不支持,因此无法在Sails中获取#之后的URL。例如,如果您编写一个操作以从一个子域重定向到另一个子域,则您无法查看该操作中的URL片段。 但是,如果您使用302重定向(即res.redirect())进行响应,则另一端的用户代理将保留URL片段/散列并将其粘贴到新重定向的URL的末尾。
或者你可以在客户端获取片段并将它们作为参数添加到服务器端。
请参阅Sails文档:http://sailsjs.com/documentation/reference/request-req/req-url
在客户端获取片段,您可以使用:window.location.hash.substr(1);