Node Express服务端如何获取带#哈希锚点URL的请求参数
核心原因
URL 里 # 开头的片段是锚点,这部分内容仅在浏览器侧处理,完全不会发送到服务端。你之前把参数、路径拼在 # 后面,Express 根本收不到这部分内容,自然匹配不到对应路由。
实现方法
所有需要服务端识别的路径、参数,必须放在 # 之前,锚点放在URL的最末尾,不会影响原有的自动滚动到对应元素的效果。
支持的URL格式
- 查询参数形式:
http://localhost:3000/?test=2#record_2 - 路径参数形式:
http://localhost:3000/test/2#record_2
对应Express路由写法
- 处理查询参数:
app.get('/', async (request, response) => { // 从query对象获取test参数 console.log('参数值:', request.query.test) response.redirect('/') })
- 处理路径参数:
app.get('/test/:id', async (request, response) => { // 从params对象获取路径id console.log('参数值:', request.params.id) response.redirect('/') })
注意:锚点永远是URL的最后一段,不要在
#之后拼接任何需要服务端处理的内容。
内容的提问来源于stack exchange,提问作者sisko
相关产品推荐
相关产品推荐

