• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:処理終了後、他のプログラムへPOST方式でsubmitして、移動する方法)

他のプログラムへのPOST方式でのsubmit方法

このQ&Aのポイント
  • 処理終了後、他のプログラムへPOST方式でsubmitする方法について知りたいです。
  • GET方式ではなく、POST方式で値を渡したい場合、どのような手法がありますか?
  • LWPモジュールが使えないため、socketを使用して他のサーバ間の通信を考えているが、ユーザーの接続を他のサーバに引き継ぐ方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.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>

pion16
質問者

お礼

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

その他の回答 (1)

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

1.元サーバ: POSTさせたい内容のフォームを含むHTMLを元サーバで作成。 そのHTMLの最後に,JavaScriptの"document.form.submit()"含ませておく。 この作成したHTMLページをユーザへ返送。 2.クライアント側ブラウザ: JavaScriptの実行により,次のサーバへのPOSTリクエストを発行。 上のような方法で,うまくいきませんか? サーバ間通信をどうしても使いたいのなら,元サーバは一時的にReverseProxyとして動作させる必要がありますね。具体的には以下のような流れ。 元サーバ:次のサーバへPOSTリクエスト ↓ 次のサーバ:元サーバへその結果を返す。 ↓ 元サーバ:次のサーバから受け取った結果をクライアント側ブラウザへ返す。 ↓ クライアントには,次のサーバの結果のみが返る。

pion16
質問者

お礼

早速のご指導ありがとうございます。 なにも、サーバー間通信しなくても、良いのですね。 相手側が、Refererで制限をかけてくれるようなら、JavaScriptを使いたいと思います。 サーバ間通信は、なるべくなら避けたかったので、とても参考になりました。 JavaScriptは、あまり詳しくないのですが、 document.form.submit()を使うと、cgiへフォームして、その結果を見て、別のところに、フォームをさらに投げられると言うことが出来るのでしょうか?

関連するQ&A

専門家に質問してみよう