我创建了一个SPA,我使用Angular来做到这一点。现在我遇到一个问题,当我需要阅读网址"创建"在Node.js中使用Angular
例如:
我的网址是:
http://example.com/#/home?answer=yes
通常,如果网址是这样的:
http://example.com/home?answer=yes
我可以得到"答案"使用:
app.get("/home", function(req,res) {
var answer = req.query.answer;
})
但由于#
节点似乎无法解析网址。
请帮我解决这个问题。
答案 0 :(得分:0)
#
之后的url部分称为片段部分,传统上甚至不发送到服务器,因为它意味着包含客户端的数据。
有关详细信息,请参阅fragment identifier上的维基百科:
代理将URI发送到服务器,但不发送片段。相反,代理等待服务器发送资源,然后代理根据文档类型和片段值处理资源
这意味着当您在示例中发送http://example.com/#/home?answer=yes
这样的URL的GET请求时,将为您提取example.com
,并且由您的客户端代码解析#/home?answer=yes
片段,考虑到home
参数的给定值,按惯例会涉及渲染answer
路径(在SPA内)。
由于上述原因,如果您要解析服务器端的/home?answer
部分,您的请求网址应在任何#
标志之前包含它们。