Google Chrome schickt keine POST-Formulare per JavaScript ab

  • Da denkt man sich schon mal eine tolle Methode aus, wie man sicherstellen kann, dass ein Anwender auch bei langsamer Internetverbindung nur einmal auf den Absende-Button eines Formulars klicken kann ... und dann klappt das natürlich nicht in jedem Webbrowser. Typisch.

    In diesem Fall hat Google Chrome keine Lust, wie auch Apple Safari -- vermutlich alle Browser, die auf der Apple-Webkit-Engine basieren.

    Wird ein Formular via JavaScript-Funktion form.submit() abgeschickt (z.B. weil man <button onclick="..."> statt <input type="submit"> verwendet), dann funktioniert das nicht mit Formularen vom Typ method="post", sondern nur mit method="get". Das ist insbesondere bei Formularen mit größerer Datenmenge oder Dateianhängen eine erhebliche Einschränkung, weil ja gerade beim Hochladen größerer Datenmengen das mehrfache Betätigen während des Hochladens zu vermeiden wäre.

    Beispiel:

    Im Anhang - Reaktionen von

    • Google Chrome 2.0.172.30
    • Apple Safari 3.2.3
    • Mozilla Firefox 3.0.10
    • Opera 9.64
    • Microsoft Internet Explorer 7.0.5730.11

    Bei Methode "get" arbeiten alle wie erwartet.

    ___


    P.S. -- :redface: Kaum gemeldet, schon die Ursache und Lösung gefunden:

    Alle anderen Webbrowser senden das Formular zumindest noch so weit ab, wie es der MIME-Typ "text/html" zuläßt. Anhänge sind damit nicht möglich.

    Webkit jedoch verweigert offenbar schon das Absenden insgesamt, wenn für das Formular bei method="post" nicht auch gleichzeitig enctype="application/x-www-form-urlencoded" festgelegt wurde!

    Mit diesem MIME-Typ klappt das Versenden von POST-Formularen auch in Chrome und Safari.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!