- PR -

Ajaxで送ったデータをJSPで受け取れません

1
投稿者投稿内容
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 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で試しています。

ご存知の方、ご教授のほど宜しくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-12-20 21:17
JavaScriptとかAJAXとか関係なく、単にサーバサイドのバグではないでしょうか。
スタックトレースから何が原因でその例外が発生しているかつきとめましょう。
Enumeration を回しすぎているのだと思いますが・・。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-12-20 22:21
openの後に
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
とか。
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-12-21 09:08
インギさんmioさんアドバイスありがとうございます。
アドバイスどおりにやってみましたら、変数の送信に成功しました。
GETで変数を渡す場合に、mioさんのおっしゃるとおり
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
を挿入する事が必要だったようです。
POSTの方はまだ上手く行きませんが、同じようにヘッダーの問題なのかもしれません。
流れプログラマ
常連さん
会議室デビュー日: 2005/09/30
投稿数: 26
投稿日時: 2005-12-21 10:03
ヘッダの問題だと仮定すれば

 Content-Length: ***

をセットして送るといいかもしれません。
※'***' は送信バイトサイズを正しく指定
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2005-12-21 15:16
流れプログラマさん、アドバイスありがとうございます。
すみません、先ほどPOSTができないと書いたのは私の判断ミスで、
GETと同じように
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
を追加すればできていました。
お騒がせしました。
1

スキルアップ/キャリアアップ(JOB@IT)