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 に答える