• ベストアンサー
※ 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

  • 処理終了後、他のプログラムへPOST方式でsubmitする方法

    処理終了後、他のプログラムへPOST方式でsubmitする方法はないでしょうか。 GET方式を使えば出来ますが、POST方式で値を渡したいのですが、可能でしょうか。 (JavaScriptは使わず。)

    • ベストアンサー
    • Perl
  • ブラウザを使用しないでプログラムから変数を送る方法

    通常、 ・GETの場合 <a href=http://www.xxx.co.jp?a=1>submit</a> ・POSTの場合 <form method=post action="xxx.cgi"> <input type=hidden name=a value=1> <input type=submit value=submit> </form> のなどのHTMLでクリックまたはSUBMITボタンを押すとその特定のURLのWWWサーバーに変数が送られますよね。 これをブラウザを使用せず、サーバーのプログラム(perl)を使用して、そのプログラムを実行すると プログラムで指定した特定のURLのwwwサーバー(port 80)に変数を送る方法書き方を教えて下さい。 GETの場合、POSTの場合それぞれ教えてください。 通常、ブラウザがしていることを、プログラムでしたいと思っています。 よろしくお願いします

    • ベストアンサー
    • CGI
  • ajaxのget/post処理速度

    ユーザインタラクティブなWebプログラムをPHP5.2で作ってWindowsXP/Apahe2.0のlocalhostで動かしていますが、サーバ側にあまり負担のかからない処理の場合、Ajax(JQuery,JQuery.formプラグイン)のGET/POSTは通常のGET/POSTに比べてResが帰ってくるのが明らかに遅いのですが、これは一般的なことでしょうか? Ajaxが遅い原因としてどんなことが考えらるでしょうか? Ajaxの処理速度を上げる方法があれば教えて下さい。 よろしくお願いします。

  • POSTでデータを送信する方法。

    他のサーバーのCGIに対してPOSTでデータを送信する方法を探しています。 Perlバージョンは5.8 使用可能モジュールはPerl5.8 標準モジュール もしくはPurePerlモジュール この環境でPOSTを扱う方法をご存知でしたら、教えていただきたく思います。

  • 自サイトから外部サイトにPOSTでジャンプする方法

    Perl/CGIの質問です。 自サイトのCGIでいろいろな処理(データベースのインサートなど)を行った後、 最後に外部サイトにPOSTで移動したいのです。 locationの場合、GetなのでNGです。(postしか外部サイトがパラメーターを受け取ってくれません。) 私の知る限りSocketでもpostできるということはわかったのですが、同時に移動は できませんよね?内部処理としてPOSTできるだけですよね? 簡単に言えばlocationをPOSTで送りたいということです。 どなたかよい方法をご教授いただけますようお願いいたします。

    • ベストアンサー
    • CGI
  • LWPでPOST送信した後に送信先に移動したい

    LWPで別サーバーのtest.cgiに以下のようなコードで POST送信しています。 use HTTP::Request::Common; use LWP::UserAgent; $query="param1=dummy"; $ua = LWP::UserAgent->new(); $req = HTTP::Request->new(POST => "http://xxx.xxx.xxx/test.cgi"); $req -> content_type('application/x-www-form-urlencoded'); $req -> content($query); $res = $ua->request($req); $success = $res -> is_success; if(!$success){ die("error"); } $con = $res -> content; この場合、$conにtest.cgiの出力が入るだけで、 URLのhttp://xxx.xxx.xxx/test.cgiに遷移することはできません。 HTMLのformタグでPOST送信したときのように、 POSTでデータを送信してかつ、その送信先に移動するということはできるのでしょうか。 LWPでなくてもいいです。 要するにHTMLのformタグでのPOST送信を手動ではなく、自動で行いたいわけですが、 <form action="http://xxx.xxx.xxx/test.cgi" method="post"> <input type="hidden" name="param1" value="dummy"> </form> このようなタグのあるHTMLを表示して、 JavaScriptでonLoadでsubmitすればできるのですが、 JavaScriptを使っているとSSLの場合にセキュリティのアラートがでる場合があるので、 できればPerlだけでできないかと思ったのです。

  • VBAでIEを操作submit処理について

    ExcelVBAでIEを操作する処理について勉強中です。 formで、nameが定義されておらず、submitが複数(4つ)ある場合です。 HTMLが下記記載の場合で、submit”A”をクリックしたいです。 <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="A"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="B"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="C"></td></form> <form action="XXXX/admin.cgi" method=POST><td> <input type="submit" value="D"></td></form> VBAでのsubmitの記述を下記で試してみたのですが、うまくクリックできません。 ObjIE.document.forms(0).Action = "XXXX/admin.cgi" ObjIE.document.forms(0).submit どのように変えたらよいのでしょうか。。。 ご教授お願い致します。

  • 毎日プログラムを終了させる方法

    こんばんわ。 vb6で、サーバー/クライアントシステムで、10人ほどユーザーをもつシステムがあります。 毎日、夜中にサーバーが定期的な処理をします。 (その日全員が行った作業のバックアップをとります) その際に、全10人のクライアントのプログラムを終了させる必要がありますが、サーバーから自動的にvb6のプログラムを終了させる方法がありますでしょうか? ツール費用などかかったり、方法がなければ運用でカバーしてもらうしかないでしょうか。 何かよい方法があればご教授願います。

  • Submitしたボタンを知る方法は?

    <form onsubmit="function()"> <button type="submit" id="button1" name="cmd" value="1">1番を選ぶ</button> <button type="submit" id="button2" name="cmd" value="2">2番を選ぶ</button> </form> とした場合に、function()内で、押したボタンを知るにはどこを見ればよいでしょうか? ちなみに、このあと適当なcgiにpostし、name,valueはそちらで処理する予定ですので、この2つの要素については大幅な変更は出来ません。

  • 他ホストからのPOSTを防ぐ方法

    php.iniのregister_globalsをOffにすることで不要な GETパラメータを受け付けないようにすることができますが、他ホストから、<form metho=POST acrion=http://***.com/xx.php> などとした場合、他ホストからPOSTできるわけで、 結局、他ホストからPOSTできないようにしないとrgister_globalsをOnにした時と、セキュリティーはあまり変わらないようか気がするのですが、 他ホストからPOSTできなくする方法はありますでしょうか? 現在、思いつくのはPHPに限らず以下の方法ですが、 いずれも完璧ではないような気がします。 1.refererチェック(100%で有効ではないらしい) 2.Sessionによる認証チェック(認証済みユーザなら結局、同一ブラウザを使い他ホストのページからPOSTできる)

    • 締切済み
    • PHP
このQ&Aのポイント
  • プリンター機のアップデートをしたいが、パスワードが分からず困っています。
  • お使いの環境はAndroidで、接続は無線LANです。
  • 関連するソフトはiPrint&Scanで、電話回線はひかり回線です。
回答を見る

専門家に質問してみよう