it-swarm.com.de

So senden Sie mehrteilige Formulardaten mit Jquery

<form id="uploadForm" enctype="multipart/form-data" action="http://localhost:1337/ad/upload" method="post" name="uploadForm" novalidate>
    <input type="file" name="userPhoto" id="userPhoto" />
    <input type="submit" value="submit" id="uploadImage" />
</form>

Dies ist mein HTML-Formular, das ein Bild als Datei inout akzeptiert. Der Benutzer kann eine Bilddatei auswählen und dann auf Senden klicken. Dies funktioniert, aber die URL der aktuellen Seite ändert sich in localhost: 1337/ad/upload. Ich möchte, dass die Seite unter der gleichen URL bleibt.

$("form#uploadForm").submit(function(event) {
    event.preventDefault();
    var formData = new FormData($(this)[0]);
    var posting = $.post(url, formData);

})

Ich habe dies versucht, um das Formular mit Jquery zu senden, aber es wird eine Fehlermeldung angezeigt: Nicht erfasster Typfehler: Unzulässige Aufruf

Welche Daten sendet das Formular, wenn der Typ Mehrteil-/Formulardaten ist, und wie können diese Daten in jQuery abgerufen werden?

7
user3655266

Prozessdaten

Standardmäßig werden Daten, die als Daten an die Datenoption übergeben werden (technisch etwas anderes als eine Zeichenfolge), verarbeitet und in eine Abfragezeichenfolge umgewandelt, die dem Standardinhaltstyp "application/x-www-form-urlencoded" entspricht. . Wenn Sie ein DOMDocument oder andere nicht verarbeitete Daten senden möchten, setzen Sie diese Option auf false.

Bitte überprüfen Sie jQuery Ajax-Dokumentation

Versuchen Sie Ajax so - 

var form = new FormData($("#uploadForm")[0]);
$.ajax({
        url: your_url,
        method: "POST",
        dataType: 'json',
        data: form,
        processData: false,
        contentType: false,
        success: function(result){},
        error: function(er){}
});
19
Developer

Sie können formData alle Formulare zur Bearbeitung geben

var form = $('#uploadForm')[0]; 
// You need to use standart javascript object here
var formData = new FormData(form);

oder genaue Daten für Formdaten angeben

var formData = new FormData();
formData.append('userPhoto', $('input[type=file]')[0].files[0]); 
0
Rahul Patel