更改查询字符串服务器端



我有一个通过查询字符串获取搜索参数和页码的 Express 应用程序。

var name = req.query.name;
var state = req.query.state;
var category = req.query.category;
var pageNum = req.query.pagenum;

我想要的是,如果搜索查询有页码并且没有产生任何结果,则在没有页码的情况下进行搜索并将其传递回客户端。 这工作正常,前端正确接收数据。

唯一的问题是我希望 URL 反映更改的页码搜索,因此我希望它剥离或更改为 1,而不是website.com/search?page=4&state=AL。 我可以通过前端的 Javascript 来做到这一点,但我宁愿在服务器端更改 url(至少对我来说更有意义,而不必更改每个模板来做到这一点)。

编辑:

看起来执行此操作的唯一方法是重定向到没有页面查询字符串参数的 URL。 似乎这将有助于我完成这项工作。

我不太了解您的环境,但通常 URL 无法在服务器端"更改",因为它们显示在客户端的浏览器中。用户会看到最后一个整个页面请求的 URL。您只能使用 HTTP 重定向标头从服务器端强制进行 URL 更新(实际上是使用不同 URL 重新加载页面)。

您可以检查是否有任何带有页码的查询结果,如果没有,只需发送重定向到没有页码的 URL,以便用户看到扩展结果及其正确的(无页)URL。

希望它有所帮助。

最新更新