3

Spring MVC を介して POST タイプの大きな AJAX リクエストを送信しようとしています。リクエストには、グリッドで選択された行の ID を表すデータが含まれています。リクエストは次のようになります。ここで、N は約 30,000 です。

POST /foo/view? HTTP/1.1
Host: localhost:8443
Connection: keep-alive
Content-Length: 618953
Accept: text/html, */*; q=0.01
Origin: https://localhost:8443
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: https://localhost:8443/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8

そして、フォームデータにはエンコードされたものが含まれていますselections:

selection=1 selection=2 selection=... selection=n

このリクエストを処理するためにマップされるコントローラ メソッドには、次のように注釈が付けられます。

@RequestMapping(method = RequestMethod.POST, value = "/foo/view")
public void controllerMethod(User user, @ModelAttribute CustomModelMap inModel, BindingResult result) {
...
}

CustomModelMap には、選択をコレクションにマップするためのアクセサー/ミューテーターが含まれているだけです。

私が直面している問題は、コントローラーを押すとすぐに、ModelMap に 9,997 の選択のみが入力されることです (要求に 9,997 を超える選択が含まれている場合は常にこの数になります)。送信している AJAX リクエストを 3 回チェックして、実際に 30,000 の選択肢があることを確認しました。

私のWebサーバーはリクエストヘッダーの大量のデータを気に入らなかったのではないかと思いましたが、リクエストの合計は約600kですが、TomcatはデフォルトでPOSTに対して最大2MBを許可しているようです.

他に何を確認できるかについてのアイデアはありますか?

4

2 に答える 2