URL 来自 location.href 缺少搜索参数

URL from location.href missing searchParams

我正在尝试解析当前路由的 query/search 参数

let url = new URL(location.href);

当我查看 url 时,搜索参数在 href 中。我希望它们在 searchParams 中,它是空的。我的预期是否符合要求?

URL:

hash: "#/admin?ac=flags"
host: "localhost:8084"
hostname: "localhost"
href: "http://localhost:8084/#/admin?ac=flags"
origin: "http://localhost:8084"
password: ""
pathname: "/"
port: "8084"
protocol: "http:"
search: ""
searchParams: URLSearchParams { }

不,您的期望是正确的。 事实上,searchParams 属性 returns 一个对象 URLSearchParams 并且它不是空的。

let urlparams = (new URL(location.href)).searchParams;

现在,urlparams 持有对象,您可以使用 get 方法:

urlparams.get("ac")

href 包含 整个 URL

查询字符串将出现在 searchParams 但您的 URL 中没有查询字符串。

您有一个片段标识符(以 # 开头的部分),它是 URL 的最后一个组成部分。

如果您要有一个查询字符串,您需要一个以 ? after 路径但 before 开头的部分片段标识符。