プロが教える店舗&オフィスのセキュリティ対策術

処理終了後、他のプログラムへPOST方式でsubmitする方法はないでしょうか。
GET方式を使えば出来ますが、POST方式で値を渡したいのですが、可能でしょうか。
という質問があり、とても参考になりましたが、その後の処理がわかりません。

ユーザーが登録後、自分のサーバで処理終了し、
他のサーバーにある、パスワードとIDをPost方式で受け取るcgiへ引継ぎ、ログイン後の画面へ移行したいです。
そのプログラムは、GETでは、受け取れないようです。

LWPモジュールが使えないため、socketで、サーバ間の通信を考えていますが、どのようにして、ユーザーの接続を他のサーバ側に引き継いでよいのかわかりません。

お力をお貸しください。
よろしくお願いいたします。

A 回答 (2件)

はい。


"document.form.submit()"の効果は,フォームのSubmit(送信)ボタンを押すのと全く同じなんです。

実験的HTMLソースを作成しました。
これを見ていただけば,理解しやすいでしょうか?
このHTMLソースはページを開いたとき,Javascriptのボタンを押したとき,Submitのボタンを押したとき,3つのいずれかでフォームの送信動作(action)を実行します。

<FORM name=MYFORM action="javascript:alert('送信')">

<input type=submit>

<input type=button value="JavaScriptのボタン"
onClick="javacsript:document.MYFORM.submit()">

</FORM>

<SCRIPT language="JavaScript">
<!--
document.MYFORM.submit();
-->
</SCRIPT>
    • good
    • 0
この回答へのお礼

ページを開いたときそのまま送るのは、まさに必要としていた機能です。
おかげさまで出来そうです。ありがとうございました。

お礼日時:2001/12/13 11:51

1.元サーバ:


POSTさせたい内容のフォームを含むHTMLを元サーバで作成。
そのHTMLの最後に,JavaScriptの"document.form.submit()"含ませておく。
この作成したHTMLページをユーザへ返送。

2.クライアント側ブラウザ:
JavaScriptの実行により,次のサーバへのPOSTリクエストを発行。

上のような方法で,うまくいきませんか?


サーバ間通信をどうしても使いたいのなら,元サーバは一時的にReverseProxyとして動作させる必要がありますね。具体的には以下のような流れ。
元サーバ:次のサーバへPOSTリクエスト

次のサーバ:元サーバへその結果を返す。

元サーバ:次のサーバから受け取った結果をクライアント側ブラウザへ返す。

クライアントには,次のサーバの結果のみが返る。
    • good
    • 0
この回答へのお礼

早速のご指導ありがとうございます。

なにも、サーバー間通信しなくても、良いのですね。
相手側が、Refererで制限をかけてくれるようなら、JavaScriptを使いたいと思います。

サーバ間通信は、なるべくなら避けたかったので、とても参考になりました。

JavaScriptは、あまり詳しくないのですが、
document.form.submit()を使うと、cgiへフォームして、その結果を見て、別のところに、フォームをさらに投げられると言うことが出来るのでしょうか?

お礼日時:2001/12/10 02:58

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