我正在使用一种相当新的技术,名为Astro (https://astro.build/)来构建一个完全静态的、服务器端呈现的页面,提供零JS。
我有一个表单的页面,它是一个简单的文本输入,当用户填写它并单击submit按钮时,它会发送一个GET请求到一个天文页面。网址看起来会像这样..。
/?search=1234
我想要做的是访问这个querystring参数,以便将我的用户重定向到另一个静态页面/1234。
我正在尝试使用Astro.request访问quesrystring参数,但是对象(包括参数属性)完全是空的。
是否可以访问.astro页面/文件中的查询字符串参数?
发布于 2022-01-11 13:18:50
我接触了阿童木的开发人员,并最终收到了一封电子邮件。这个功能是不可能的阿童木,它不是一个错误,而是一个误解,从我的阿童木如何工作。阿童木中的页面是预先呈现的,完全是静态的。
发布于 2022-08-31 18:40:12
您可以使用Astro.url
(可从v1.0.0-rc中获得)。
例如:
---
const search = Astro.url.searchParams.get('search')! || '';
---
{search ? <p>you searched for: {search}</p>}
<!-- rest of your template markup -->
发布于 2022-01-02 14:10:09
我也想做同样的事情,但是这似乎是Astro中的一个bug,它不提供queryString参数,但是这里有一种方法可以用Vanilla javascript来实现它,但是请注意,这只能在客户端完成,因为它只是javascript.
对于queryString:
localhost:3000/test?search=123
要获得参数:
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
这种方法也可以在this question中看到。
https://stackoverflow.com/questions/70173939
复制相似问题