0

いくつかのリンクを含むポートレットがいくつかありますが、必要なのは URL パラメータを非表示にすることだけです。そのため、それぞれのフォームを作成し、クリック イベントをバインドしてフォームを送信する jQuery コードを含めるのは簡単だと思いました。

これは動作しません。何らかの理由でアクション リクエストがヒットしません。

URL パラメータを非表示にするための別の提案はありますか?

4

3 に答える 3

2
<a href="#" onclick="JavaScript: handleThisLink();"> description of link </a>
<form name="mydataform" id="mydataform" action="/actionurlonyoursite" method="post">
  <input type="hidden" name="myparam" value="" />
</form>
<script type="text/javascript">
function handleThisLink()
{
    // access the hidden element in which you wish to pass the value of the parameter
    dojo.byId("myparam").value = "myvalue";
    // the value might be precomputed (while generating this page) or 
    // might need to be computed based on other data in the page
    // submit the form by HTTP POST method to the URL which will handle it.
    document.forms['mydataform'].submit();
    // also possible to actually send a background AJAX request and publish
    // the response to some part of the current page, thus avoiding full
    // page refresh
    // I used dojo.byId() as a shortcut to access the input element
    // this is based on dojo toolkit.
}

</script>
于 2009-11-11T17:53:09.557 に答える
1

リンクGETはデフォルトでリクエストを起動します。GETURLを介してパラメータを渡さずにHTTPリクエストを起動することはできません。これを実行できるのはHTTPだけPOSTです。その後、すべてのパラメーターがリクエスト本文に含まれます。ただし、すべてのリンクをボタン付きのフォームに置き換える必要があり、サーバー側のコードを変更して、それに応じてアクションを実行するPOSTリクエストではなく、リクエストをリッスンするようにする必要があります。GET

Javascriptは、の助けを借りて「バックグラウンド」でGETリクエストを実行することもできXMLHttpRequestますが、クライアントでJSが無効になっている場合、アプリケーションは壊れるか、パラメータを表示し続けます。また、クライアントはJSコードを完全に制御できるため、必ずしもクライアントからパラメーターを「非表示」にする必要はなく、ブラウザーのアドレスバーからのみパラメーターを「非表示」にします。

于 2009-11-11T17:18:39.563 に答える
0

XMLHttpRequest を使用して URL パラメータを非表示にしたり、サーブレット コンテナのセッション変数を使用したりできます。

エンコード URL を使用して、複雑なデータをエンド ユーザーに表示することができます。

幸運を

于 2009-11-12T04:37:32.877 に答える