javascript - 如何将包含哈希的 URI 作为路由参数传递来表达?
问题描述
我的快速申请中有以下路线:
app.get('/api/:URI', (req, res) => {
doStuff();
}
传递的 URI 参数是在客户端编码的 URIencodeURIComponent()
它工作正常,除非 URI 包含哈希。
示例:http://foo.bar/foobar/bla#blabla-313fe4ce-4f8d-48b7-b0f3-a59844402ee8
在这种情况下,路由将被忽略。
在浏览器端,我收到一个代码 301,然后是下一个有效路由的结果。
如果我删除哈希,或者更奇怪的是,如果我在浏览器端禁用缓存,它会完美运行。
有什么办法 express 可以忽略散列?
编辑:这绝对不是我可以在 URL 中使用 at 符号 (@) 吗?重复,问题更多是关于快速路由和/或浏览器缓存问题,而不是关于 URL 中允许的字符。
解决方案
有什么办法 express 可以忽略散列?
我尝试使用 OR 运算符。例如,
app.get('/blog' || '/blog#top', (request, response) => {
...
});
因此,无论是否#top
存在,它都有效。
推荐阅读
- python - Python Holoviews 上的自定义悬停工具
- javascript - 在 JavaScript 中创建新的对象实例而不覆盖旧的对象实例
- c - 将元素添加到排序的整数列表时的困惑
- kotlin - 协程范围和异步 - 正确的方法?
- excel - 2个日期之间的过滤表Excel VBA
- python - 如何在没有 TypeError 的情况下在我的 python tkinter 代码上访问这些费率:'dict_keys' object is not subscriptable
- html - 通过 CSS 增加垂直导航栏宽度的问题
- python - 在 Windows 上无法识别 Nosetests
- function - 如何添加一个参数的多个案例,使其成为代码中某处的变量并将该参数用作函数中的一个
- sql-server - 在 VB 中显示 Excel 到 Gridview