0

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

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

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

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

编辑:

看起来这样做的唯一方法是重定向到没有页面查询字符串参数的 URL。看来将帮助我完成这项工作。

4

1 回答 1

2

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

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

希望它有所帮助。

于 2013-01-31T22:17:41.820 回答