小编典典

为什么URL的哈希部分在服务器端不可用?

javascript

例如,如果我输入URL:

http://www.foo.com/page.php?parameter=kickme#MOREURL

然后在服务器上没有任何部分:#MOREURL

是否可以在没有jQuery AJAX的情况下将这些部分发送或获取到服务器?


阅读 432

收藏
2020-04-25

共1个答案

小编典典

不,它仅对浏览器可用 ,因此您必须使用Javascript处理它。服务器无法读取它。

说明:
基本上,页面URL的散列部分(#符号后面的部分)仅由浏览器处理-
浏览器从不将其传递给服务器。可悲的是,这是HTML标准的一部分,无论您是否使用IE或任何其他浏览器(就此而言,还是PHP或任何其他服务器端技术)都是相同的。

这是 维基百科 所说的:

片段标识符的功能与URI其余部分的功能不同:即,其标识符处理 完全在客户端,而没有服务器的参与
。当代理(例如Web浏览器)从Web服务器请求资源时,该代理将URI发送到服务器,但不发送片段。相反,代理程序等待服务器发送资源,然后代理程序根据片段值处理资源。在最常见的情况下,代理将网页向下滚动到锚元素,该锚元素的属性字符串等于片段值。其他客户端行为也是可能的

2020-04-25