Per JavaScript senden (AJAX)

Die Sendungsübertragung per XHR-Request (früher als AJAX bezeichnet), ermöglicht Ihnen den Sendevorgang weiter anzupassen. Damit können Sie die Formularsendung ohne Neuladen der Seite im Hintergrund ausführen und die Anzeige von Meldungen (Erfolg, Fehler) individuell, ohne Weiterleitung zu einer Meldungsseite, gestalten. Weiters können Sie im JavaScript Programmcode beliebige Validierungen zu den Formulareingaben durchführen bevor das Formular übertragen wird.

form.taxi ist für die Übertragung per XHR-Requests vorbereitet. Damit Ihre Sendungen als solche erkannt werden, ist es zwingend erforderlich, dass mit dem Request der Header Accept mit dem Wert application/json mitgesendet wird.

Beispiel eines XHR-Requests

<form action="https://form.taxi/s/FORM_CODE" id="my-form" method="POST">
    Name: <input type="text" name="Name"><br>
    Email: <input type="email" name="Email"><br>
    Nachricht: <textarea name="Message"></textarea><br>
    <input type="submit" value="Send">
</form>
<script type="text/javascript">

  var form = document.getElementById("my-form");
  form.onsubmit = function(event) {
    event.preventDefault();

    var formData = new FormData(form);
    var xhr = new XMLHttpRequest();
    xhr.open("POST", form.action, true);
    xhr.setRequestHeader('Accept', 'application/json');
    xhr.onload = function(e) {

      // Response
      try {
        var response = JSON.parse(xhr.response);
      } catch(e) {
        var response = { success: false, error_msg: 'no json request' }
      }

      // Success
      if(xhr.status === 200 && response.success == true) {

        // Redirect to Success-URL
        // ... or display Success-Message
        alert("Success!");
      }

      // Error
      else {

        // Display Error Message
        var msg = response.error;
        if(response.error_msg != '')
          msg = response.error_msg;
        alert("Error: " + msg);
      }
    };

    xhr.send(formData);
  };

</script>