- ベストアンサー
JavaScriptからCGI
JavaScriptの関数内でCGIを呼び出す際に、 以下のようにしています。 location.href = "result.cgi?MSG="+Message+"&FLAG="+Flag; しかし、Messageという変数に「=」という文字 が含まれているためうまくCGIにわたってくれません。 こちらからCGIにわたす際にきちんと引数を わたすためにはどうしたらよいのでしょうか? 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
多分、問題になるのは[=]だけではないと思います。[&]も[?]もダメなはず。 なので、URLに使っちゃいけない文字を片っ端からエンコードしてくれる関数を使ってしまいましょう。参考URL参照。 str = escape("いろは"); 渡したい値それぞれに、上記関数による変換をかけてみてください。 CGIの方のデコードが賢ければ、これだけで幸せになれると思います。
その他の回答 (1)
- leaz024
- ベストアンサー率75% (398/526)
回答No.1
そのCGIのデコードルーチンがまともなものであれば、Message内の「=」を、全て「%3D」に変換すれば解決するはずです。 (「%3D」は「=」をエスケープした値です) Message = Message.replace(/=/g,'%3D'); という行を追加してみて下さい。
質問者
お礼
ありがとうございました。 なんとかできました。
お礼
ありがとうございました。 なんとかできました。