如何在#?
之后从URL获取参数示例:
http://localhost/addAccount/#code=qwerty
我尝试使用url = request.path
和url.spit('/')
,但它无法正常工作因为request.path
在网址中#不读取字符串。
答案 0 :(得分:1)
在网址中,#之后传输的内容称为哈希。在到达服务器(服务器端)的HTTP请求中,此数据不会传送到服务器。因此,在服务器端,无法检索它(Web浏览器不会在HTTP请求中发送此数据)。
然而,在客户端方面是可能的。在Javascript中你可以这样做:
窗口。地点。散列
答案 1 :(得分:0)
不要尝试手动解析网址 - 使用stdlib urllib.parse.urlparse
函数(python2上的urlparse.urlparse
):
from urllib.parse import urlparse # from urlparse import urlparse on py2
scheme = urlparse('http://localhost/addAccount/#code=qwerty')
print(scheme.fragment)
打印出来:
code=qwerty
不幸的是,您无法从服务器端获取网址的fragement(#之后的数据)。 AFAIK所有浏览器都不会将片段发送到服务器(片段只能用于客户端代码(例如javascript)。
引用Wikipedia:
当代理(例如Web浏览器)从Web服务器请求Web资源时,代理会将URI发送到服务器,但不会发送该片段。相反,代理等待服务器发送资源,然后代理根据文档类型和片段值处理资源。[2]