1

ユーザーが GO をクリックすると、ユーザー 2 パラメーター (JS、html、jquery を使用) からいくつかのデータを取得し、サーブレットを呼び出して、get 要求でこれらの 2 つのパラメーターを渡します。

$.get("/Myservlet?param1="+myval+"&region="+myregion,function(data){addToTables(data);hideLoading();},"text");

サーブレットはこれら 2 つのパラメーターのデータを返し、それをブラウザーのテーブルとして表示しています。しかし問題は、ブラウザの URL が変更されていないことです。以前は abc.com であり、2 つのパラメータのデータが表示され、依然として abc.com であるとします。

abc.com に変更されないのはなぜですか?param1=myval®ion=myregion

URL にクエリ文字列が表示されないのはなぜですか?

4

3 に答える 3

2

コードに基づいて、ブラウザーの URL は変更されません。URL は、このコードが読み込まれるとすぐに固定されます (ただし、JM Perez が提案する手法を使用して変更できる場合があります)。

コードは、GET指定した URL に対して非同期リクエストを実行します。ページ全体がリロードされず、ブラウザーの URL は変更されません。

ここでajaxについて読みたいと思うかもしれません。フォーム送信の結果として、必要なタイプの URL を取得できます。

于 2013-08-31T12:35:41.403 に答える
1

URLを変更しないAJAXリクエストを作成しています。スクリプトを実行しているブラウザーがサポートしている場合は、HTML5 の History changeStateを使用して手動で変更でき ます。

于 2013-08-31T12:32:59.510 に答える
0

あなたのコードは本当に読みにくいです。$.get を誤解しているようです。このコマンドはブラウザの URL を変更しません。get リクエストを送信します。Firebug タブのネットワークで確認できます。

次に、リクエストが成功したときに実行される成功関数が必要です。

ところで: GET は安全ではありません (または少なくとも簡単に変更できます)。代わりに POST を使用してください。

于 2013-08-31T12:30:42.637 に答える