如何在Sails Js中获取URL的Hash片段?

时间:2017-10-24 06:44:02

标签: javascript node.js sails.js

目前我正在研究帆的重定向功能,因为我得到以下格式的网址:

http://localhost:1337/dashboardview/58fdcb172c88812c5126a753#comment-3580520163

因为我无法解析Hash片段值(#comment-3580520163)。我尝试使用req.url()req.path(),但我仍然没有收到#片段。

在帆中是否有方法可以使用散列片段获取整个URL,或者我们是否有任何模块来获取#片段。

我是帆的新手。请帮我找到解决方案。

先谢谢。

2 个答案:

答案 0 :(得分:0)

浏览器不会将其发送到服务器,只能在客户端上使用。

  

片段标识符的功能与URI的其余部分不同:即,它的处理完全是客户端,没有   从服务器参与 - 当然服务器通常有帮助   确定MIME类型,并确定MIME类型   处理碎片。当代理(例如Web浏览器)   从Web服务器请求资源,代理将URI发送到   服务器,但不发送片段。相反,代理等待   服务器发送资源,然后代理处理   资源根据文档类型和片段值。[2]

http://en.wikipedia.org/wiki/Fragment_identifier

答案 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);