- ベストアンサー
他のプログラムへのPOST方式でのsubmit方法
- 処理終了後、他のプログラムへPOST方式でsubmitする方法について知りたいです。
- GET方式ではなく、POST方式で値を渡したい場合、どのような手法がありますか?
- LWPモジュールが使えないため、socketを使用して他のサーバ間の通信を考えているが、ユーザーの接続を他のサーバに引き継ぐ方法がわかりません。
- みんなの回答 (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>
その他の回答 (1)
- onosuke
- ベストアンサー率67% (310/456)
1.元サーバ: POSTさせたい内容のフォームを含むHTMLを元サーバで作成。 そのHTMLの最後に,JavaScriptの"document.form.submit()"含ませておく。 この作成したHTMLページをユーザへ返送。 2.クライアント側ブラウザ: JavaScriptの実行により,次のサーバへのPOSTリクエストを発行。 上のような方法で,うまくいきませんか? サーバ間通信をどうしても使いたいのなら,元サーバは一時的にReverseProxyとして動作させる必要がありますね。具体的には以下のような流れ。 元サーバ:次のサーバへPOSTリクエスト ↓ 次のサーバ:元サーバへその結果を返す。 ↓ 元サーバ:次のサーバから受け取った結果をクライアント側ブラウザへ返す。 ↓ クライアントには,次のサーバの結果のみが返る。
お礼
早速のご指導ありがとうございます。 なにも、サーバー間通信しなくても、良いのですね。 相手側が、Refererで制限をかけてくれるようなら、JavaScriptを使いたいと思います。 サーバ間通信は、なるべくなら避けたかったので、とても参考になりました。 JavaScriptは、あまり詳しくないのですが、 document.form.submit()を使うと、cgiへフォームして、その結果を見て、別のところに、フォームをさらに投げられると言うことが出来るのでしょうか?
お礼
ページを開いたときそのまま送るのは、まさに必要としていた機能です。 おかげさまで出来そうです。ありがとうございました。