JavaScript - 通过 URL 传递变量:#var=val vs ?var=val

JavaScript - passing variables through the URL: #var=val vs ?var=val

本文关键字:val #var vs var 变量 通过 URL JavaScript      更新时间:2023-09-26

我正在尝试通过仅在客户端javascript上使用的URL传递变量。将它们传递为:

?var1=val1&var2=val2

#var1=val1&var2=val2

第一个是搜索,第二个是哈希。

搜索被发送到服务器,但哈希不会。

有一个用于哈希更改的事件,但没有用于搜索的事件。

https://developer.mozilla.org/en/DOM/window.locationenter 链接说明

在这里
?

查询部分)被发送到服务器,#(哈希部分)不会。

使用哈希部分时,它不会重新加载页面。使用查询部分时,它将重新加载页面。

第一个

?var1=val1&var2=val2是一个查询字符串,让浏览器发出请求。

第二个是一个片段,不执行新请求。

"

#"通常是在页面上单击的链接,用作页面锚点。

"?" 是通过客户端/服务器传递的参数。

服务器永远不会看到哈希标记变量,因此无法在服务器上复制该状态(因此,搜索机器人不会获取它)

解析标准?name=value稍微容易一些,因为location.search为您提供了 URL 的那部分

更改?将导致页面刷新,并且设置#不会