- ベストアンサー
JavaScriptでcgiの戻り値を受け取るには?
JavaScriptの関数内でcgiを実行(submit)しています。 そのcgiの実行結果(cgiで記述しているexit 0などの0)を受け取る方法を教えてください。 受け取った値によって、alertでメッセージを表示させたいです。 cgiの実行からalertでメッセージを表示させるまでの処理を JavaScriptの1つの関数内で行いたいです。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
いわゆる「Ajax」で調べてみてください。 一般的には非同期通信を行いますが、同期通信なら1つの関数内で出来ます。 「ajax 同期通信」「ajax 同期モード」こんな感じのキーワードでいいと思います。 サンプルは検索すれば何種類か出てくると思いますのでそれを見てください。 (種類が少ないのは、他に書き方がないため。使用しているライブラリの違い。) ただし、exit 0の0を受け取ることは出来ません。 これはCGIアプリケーションからOSに返される値であり、クライアントへは返されません。(CGIアプリケーションにとっての標準出力から出力されません。) これをJavaScriptで受け取るには、CGIアプリケーションがexit 0する前にそれと同じ値を標準出力に出力する必要があります。 以下、PerlのCGIスクリプトの例(exit部分) if($isError){ print '1'; exit 1; } print '0'; exit 0;
お礼
回答ありがとうございました。 教えていただいた通り、サンプルを見つけて試してみました。 しかし、戻り値として取得したい「1」や「0」が文字化けしたようなものしか取得できませんでした。 実行しているcgiの中でファイルをダウンロードするダイアログを出力させているせいなのか、 文字コード?の設定がよくないのか、もう少し調べて成功させたかったのですが、 締め切りに間に合わず、他の方法でなんとか間に合わせました。 時間のあるときに、再度勉強したいと思います。 ありがとうございました。