590 votes

Envoi de données POST avec un XMLHttpRequest

Je voudrais envoyer des données à l’aide de XMLHttpRequest en JavaScript.

Dire que j’ai le formulaire suivant en HTML :

Comment est-ce que je peux écrire l’équivalent à l’aide d’un XMLHttpRequest en JavaScript ?

834voto

Ed Heal Points 24309

Copiez le code suivant montre comment faire cela.


Voici simplement la liste de cette page, dans le cas où le lien ci-dessus redescend :

297voto

uKolka Points 2590
<pre><code></code><p><a href="https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects"><strong>FormData</strong></a>:</p><pre><code></code></pre></pre>

40voto

olibre Points 6069

Le uKolka la réponse est parfait. Ici, j'ai juste donner un autre exemple pour compléter sa réponse.

J'ai implémenté l'exemple ci-dessous après avoir lu le MDN lien fourni dans Topas réponse. (uKolka donne un encore meilleur MDN lien à l'intérieur de sa réponse).

Minimiser l'utilisation de l' FormData soumettre une requête AJAX:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"/>

<script>
"use strict";
function submitForm(oFormElement)
{
  var xhr = new XMLHttpRequest();
  xhr.onload = function(){ alert (xhr.responseText); }
  xhr.open (oFormElement.method, oFormElement.action, true);
  xhr.send (new FormData (oFormElement));
  return false;
}
</script>
</head>

<body>
<form method="post" action="somewhere" onsubmit="submitForm(this);">
    <input type="hidden" value="person"   name="user" />
    <input type="hidden" value="password" name="pwd" />
    <input type="hidden" value="place"    name="organization" />
    <input type="hidden" value="key"      name="requiredkey" />
    <input type="submit" value="post request"/>
</form>
</body>
</html>

Cela peut ne pas répondre à l'OP question, car elle oblige l'utilisateur à cliquer sur la page pour soumettre la demande. Mais cet exemple peut être utile pour les personnes à la recherche de réponses (voir aussi la ComFreek de réponse).

Attention, cet exemple a été simplifiée et ne prend pas en charge l' GET méthode. Si vous êtes intéressant de plus en plus sophistiqués exemple, jetez un oeil à l'excellent MDN documentation.

4voto

Topas Points 29

ce n’est pas mon code, mais il m’a aidé beaucoup https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X