• ベストアンサー

JavaScriptからCGI

JavaScriptの関数内でCGIを呼び出す際に、 以下のようにしています。 location.href = "result.cgi?MSG="+Message+"&FLAG="+Flag; しかし、Messageという変数に「=」という文字 が含まれているためうまくCGIにわたってくれません。 こちらからCGIにわたす際にきちんと引数を わたすためにはどうしたらよいのでしょうか? 教えてください。

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

  • ベストアンサー
  • ryouki
  • ベストアンサー率50% (11/22)
回答No.2

多分、問題になるのは[=]だけではないと思います。[&]も[?]もダメなはず。 なので、URLに使っちゃいけない文字を片っ端からエンコードしてくれる関数を使ってしまいましょう。参考URL参照。 str = escape("いろは"); 渡したい値それぞれに、上記関数による変換をかけてみてください。 CGIの方のデコードが賢ければ、これだけで幸せになれると思います。

参考URL:
http://tohoho.wakusei.ne.jp/js/builtin.htm#encode
mymilky
質問者

お礼

ありがとうございました。 なんとかできました。

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

そのCGIのデコードルーチンがまともなものであれば、Message内の「=」を、全て「%3D」に変換すれば解決するはずです。 (「%3D」は「=」をエスケープした値です) Message = Message.replace(/=/g,'%3D'); という行を追加してみて下さい。

mymilky
質問者

お礼

ありがとうございました。 なんとかできました。