Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在“后获取url”#&引用;在express.js中间件请求中_Javascript_Url_Hash_Express_Request - Fatal编程技术网

Javascript 在“后获取url”#&引用;在express.js中间件请求中

Javascript 在“后获取url”#&引用;在express.js中间件请求中,javascript,url,hash,express,request,Javascript,Url,Hash,Express,Request,我需要获取服务器中间件上的url(使用express.js)。我使用req.url,但是当url从/#开始时,一些/urlreq.url返回/ 与请求路径相同 在express.js中,有没有一种方法可以在#之后获取url?使用Node.js中提供的内置url解析url并创建url。这将有一个hashfragment属性,其中包含所需的哈希片段 const url = require('url') const urlObj = url.parse(req.url) console.log(url

我需要获取服务器中间件上的url(使用express.js)。我使用
req.url
,但是当url从
/#开始时,一些/url
req.url返回
/

请求路径
相同


在express.js中,有没有一种方法可以在
#
之后获取url?

使用Node.js中提供的内置
url
解析url并创建url。这将有一个
hash
fragment属性,其中包含所需的哈希片段

const url = require('url')
const urlObj = url.parse(req.url)
console.log(urlObj.hash) // #some/url

否。URL中以
#
符号开头的部分永远不会发送到服务器

URL中的
#
符号用于介绍。这用于链接到页面的特定部分。如果浏览器加载
/#some/url
,它将有效地加载
/
,并跳到带有
id=“some/url”
(如果存在)的HTML元素。片段标识符仅与浏览器相关,因此不会随HTTP请求一起发送


但是,您可以做的是使用客户端Javascript读取
window.location.hash的值,并使用XMLHttpRequest将其发送到服务器。()

可能的重复这里有一个很好的解释,#-部分没有传输到服务器。除非
-部分没有传输到服务器。我在本地尝试过,我运行了一个url,比如:over-1000-car-911-white-vin#lala,然后在nodejs中,运行console.log('req.url',url.parse(req.url))-console.log('req.originalUrl',url.parse(req.originalUrl))并且哈希符号永远不会像您所说的那样被读取