CGIでリダイレクトを行うときにGETメソッドではなくPOSTメソッドで送信するには?
[上に]
[前に]
[次に]
ゆうと
[E-Mail]
1999/12/21(火) 17:16:57
IDチェックのプログラムを作っているのですが
CGIで受け取ったデータをリダイレクトして
他のCGIにそのデータを送りたいのですが
この際にGETメソッドではなくPOSTメソッドとして送りたいのです。
何か方法がありましたらお教えください。
きたむら
1999/12/22(水) 05:02:55
このへん理解が浅いのでおそるおそる書きますが、IDチェックCGIの中でソケットを開いて、目的のCGIと交信すれば可能なはずです。
#もっと単純な方法があったらすみません。ていうかぜひ教えてくださーい。
ふじ
1999/12/22(水) 15:33:30
リダイレクトとはちょっと違うけど、JavaScriptを使って良いのなら
<BODY onLoad="document.f.submit()";>
<FORM action="他のCGI" name=f method="POST">
<INPUT type="HIDDEN" name="hoge" value="fuga">
<INPUT type="submit" value="飛ばないときは押してね">
</FORM>
というようなHTMLを出力して、サブミットさせることは出来ます。
JavaScript を切ってると飛びませんけど。
他には、きたむらさんの仰るように、IDチェックCGI が内部で
他の CGI へ POST でデータを送信して、その結果を取得して
ユーザへ返す、というような仕組みを作るとか。
この場合、ユーザには IDチェックCGI が結果を返してきたように
見えます。
#ブラウザの URL 表示欄には IDチェックCGI のが表示されたまま。
ゆうと
1999/12/22(水) 17:30:12
みなさん、ありがとうございます。
ふじさんのおっしゃるようにhtmlを書いて
自動的にジャンプさせてやればPOSTで送ることは可能なのですが
実際問題としてリダイレクトなので
ユーザーには何を送っているか全くわからない状態で
送信しなくてはなりません。
だからブラウザにファイルの形式で
読ませてしまってはいけないようなのです。
なにぶん私も代理なのではっきりとはわかっていないのです。
プログラマとも話してどのようなプログラムで
GETメソッドで送っているのか聞いてみます。
ふじ
1999/12/22(水) 18:20:01
> 実際問題としてリダイレクトなので
意味がよく分からないんですけど・・・
Location ヘッダを出力してブラウザにリダイレクトさせたいのであれば、
POST でデータを送信することは出来ません。
Location でリダイレクトする場合 (ステータスコード 302) は、
一時的にこのページは移転しているからこっちの URL を「見てね」(=GETしてね)
という意味だからです。
> プログラマとも話して
直接本人に書き込みしてもらった方が早いかも(^^;
[上に]
[前に]
[次に]