- - PR -
Ajaxで送ったデータをJSPで受け取れません
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-20 19:01
お世話になっております。
現在、Ajaxの技術とJSPを組み合わせたWebアプリケーションを作成しています。 そこで、非常に基本的な事柄でお恥ずかしいのですが、クライアントから送信したデータを受け取れずに困っています。 クライアント側は、JavaScript内で httpRequest.open("POST","testPage.jsp"); httpRequest.send("argA=1"); このような形で送信しているのですが、受信側のJSPで request.getParameter("argA"); とやっても、nullになってしまいます。 request.getParameterNames(); をやってみましたが、そもそもargAも含めて、何もリクエストデータが来ていないようなのです。 変数の受信以外は、レスポンスを返してページを動的に書き換えるところまでうまく動くのですが・・・。 POSTができないのでGETを使ってみて httpRequest.open("GET","testPage.jsp?argA=1"); httpRequest.send(""); という事をやってみたら、サーバ側がNoSuchElementExceptionというのを起こしました。 本やネット上も漁ってみましたが解決できずにいます。 JavaScriptから変数を送信してJSPで受け取るにはどうしたらいいのでしょうか? ブラウザはOpera8.5、IE6、FF1、NN8で試しています。 ご存知の方、ご教授のほど宜しくお願いします。 |
|
投稿日時: 2005-12-20 21:17
JavaScriptとかAJAXとか関係なく、単にサーバサイドのバグではないでしょうか。
スタックトレースから何が原因でその例外が発生しているかつきとめましょう。 Enumeration を回しすぎているのだと思いますが・・。 |
|
投稿日時: 2005-12-20 22:21
openの後に
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); とか。 |
|
投稿日時: 2005-12-21 09:08
インギさんmioさんアドバイスありがとうございます。
アドバイスどおりにやってみましたら、変数の送信に成功しました。 GETで変数を渡す場合に、mioさんのおっしゃるとおり httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); を挿入する事が必要だったようです。 POSTの方はまだ上手く行きませんが、同じようにヘッダーの問題なのかもしれません。 |
|
投稿日時: 2005-12-21 10:03
ヘッダの問題だと仮定すれば
Content-Length: *** をセットして送るといいかもしれません。 ※'***' は送信バイトサイズを正しく指定 |
|
投稿日時: 2005-12-21 15:16
流れプログラマさん、アドバイスありがとうございます。
すみません、先ほどPOSTができないと書いたのは私の判断ミスで、 GETと同じように httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); を追加すればできていました。 お騒がせしました。 |
1