プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

多分、問題になるのは[=]だけではないと思います。

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

参考URL:http://tohoho.wakusei.ne.jp/js/builtin.htm#encode
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/06 22:02

そのCGIのデコードルーチンがまともなものであれば、Message内の「=」を、全て「%3D」に変換すれば解決するはずです。


(「%3D」は「=」をエスケープした値です)

Message = Message.replace(/=/g,'%3D');
という行を追加してみて下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/12/06 22:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!