• ベストアンサー

Ajax 通信オブジェクトのブラウザごとの挙動について

複数のパラメータをもつフォームをPOSTしたいのですが、Safariでは問題ないのですが、IE6ではパラメータ値がPOSTされません。(サーブレットに値がわたってこない) xmlHttpObject.open("POST", "/test/searchAjax.do", true); xmlHttpObject.send("pageNo=0&limitCnt=10000&lang=JA"); ↑ (値は具体的に組みあがった文字列のイメージです) なお、xmlHttpObjectはブラウザの種類ごとに以下のように宣言しています。 ≪Safariの場合≫  xmlHttpObject = new XMLHttpRequest(); ≪IE6の場合≫  xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP"); なぜ、IE6はサーブレットに値が届かないのか、心当たりのある方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

POSTではなくGETしてみてはいかがでしょうか?

AsianTet
質問者

お礼

URLの後ろにパラメータを並べてGETでopenし、send(null)で実行すると、SafariでもIEでもFlockというブラウザでも動きました。 助かりました。ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#22259
noname#22259
回答No.3

.............. try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttp = false; } } else xmlHttp = false; if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { try { xmlHttp = new XMLHttpRequest(); xmlHttp.overrideMimeType("text/xml"); } catch (e) { xmlHttp = false; } } ................ ................

AsianTet
質問者

お礼

アドバイスいただき、本当にありがとうございます。 xmlHttp.overrideMimeType("text/xml");の部分が私のコードには無かったので追加してみましたが、結果は同じでした。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

/test/searchAjax.do をhttp://~にしてみるとか setRequestHeader を付けてみるとか "Msxml2.XMLHTTP" を Microsoft.XMLHTTP にしてみるとか

AsianTet
質問者

お礼

アドバイスいただき、本当にありがとうございます。 サーブレットにアクセスはできておりましたのでフルURLにしても同じでした。 Msxml2.XMLHTTPとMicrosoft.XMLHTTPの切り替えはすでに実装されておりました。

すると、全ての回答が全文表示されます。

関連するQ&A