-1

jquery $.post メソッドを使用して文字列をサーブレットに送信しています。

var temp = "hsad d jad a....sad";
var str="testServlet?param="+temp;
$.post(str, function(data) {
    alert("saved");
});

testServlet は、temp5000 などの文字数が少ない場合に呼び出しを受け取ります。文字数、つまり > 5000 では呼び出されません。Firebug は「中止されました」と言います。理由がわかりませんでした。

tempこれは上記のコードがフォームで送信しているからかもしれないと思ったので、getこのように書きました-

var temp = "hsad d jad a....sad";
var str="testServlet";
$.post(str, {param:temp}, function(data) {
    alert("saved");
});

ただし、この場合、サーブレットは呼び出されましたが、param は null でした。
1. 上記の 2 つの方法に違いはありますか?
2. 最初のメソッドが get の場合、jquery に $.get があるのはなぜですか?

4

1 に答える 1

4

最大URLの長さには制限があり、Webブラウザー、Webサーバーなどによって異なります。URLの一部のパラメーターを渡すと、POST要求を使用しても、パラメーターが長すぎるという問題が発生します。

コードでは、{param:temp}のみがリクエスト本文に保存されます。strはurlであるため、最大長の制限があります。

于 2012-05-17T11:48:36.053 に答える