ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript でフォーム送信のような POST リクエストをシミュレートするにはどうすればよいですか?

JavaScript でフォーム送信のような POST リクエストをシミュレートするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-18 15:29:11
オリジナル
209 人が閲覧しました

How Can I Simulate a POST Request in JavaScript Like a Form Submission?

フォーム送信のような JavaScript での POST リクエスト

ブラウザを別のページにリダイレクトするには、次のように GET リクエストを使用できます。以下の例:

document.location.href = 'http://example.com/q=a';
ログイン後にコピー

ただし、POST リクエストを必要とするリソースの場合は、別のアプローチがあります。 必要。

<form action="http://example.com/" method="POST">
    <input type="hidden" name="q" value="a">
</form>
ログイン後にコピー

に示すように、HTML は静的な送信に使用できます。一方、動的な送信には JavaScript ソリューションが推奨されます。

post_to_url('http://example.com/', {'q':'a'});
ログイン後にコピー

ブラウザ間の互換性には、包括的な機能が必要です。実装。次のコードは、簡単な解決策を提供します。

/**
 * sends a request to the specified url from a form. this will change the window location.
 * @param {string} path the path to send the post request to
 * @param {object} params the parameters to add to the url
 * @param {string} [method=post] the method to use on the form
 */

function post(path, params, method='post') {

  // The rest of this code assumes you are not using a library.
  // It can be made less verbose if you use one.
  const form = document.createElement('form');
  form.method = method;
  form.action = path;

  for (const key in params) {
    if (params.hasOwnProperty(key)) {
      const hiddenField = document.createElement('input');
      hiddenField.type = 'hidden';
      hiddenField.name = key;
      hiddenField.value = params[key];

      form.appendChild(hiddenField);
    }
  }

  document.body.appendChild(form);
  form.submit();
}
ログイン後にコピー

使用例:

post('/contact/', {name: 'Johnny Bravo'});
ログイン後にコピー

このメソッドは、ブラウザの場所を確実に変更し、フォームの送信をシミュレートします。不注意によるバグを防ぐために hasOwnProperty チェックが追加されていることに注意してください。

以上がJavaScript でフォーム送信のような POST リクエストをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート