Es scheint ein einfaches Problem zu sein, aber es war schon eine Stunde, die mir jetzt den Kopf zerbrach. Ich habe ein Formular, das Datei von Benutzer an den Server mit Ajax senden akzeptiert. Problem, das ich gegenüberstelle, ist in $(this).serialize()
, die immer eine leere Zeichenfolge zurückgibt. Ich habe das Namensattribut für das Eingabefeld definiert. Funktion scheint auch korrekt zu sein kann jemand darauf hinweisen, wenn ich etwas vermisse !!JQuery form.serialize() gibt einen leeren String zurück, auch wenn das name-Attribut für Formularelemente definiert ist
Es gibt viele ähnliche Ques bereits auf diesem, aber die meisten Antworten sagen, dass es Namensattribut benötigt, das bereits vorhanden ist.
Form:
<form action="/upload" name="upload_form" method="POST" id="upload-form">
<input type="file" name="file" value=""/><br />
<input type="submit" name="submit" value="Upload"/>
<input type="reset" name="clear" value="Clear"/>
</form>
Script
$(document).ready(function() {
$('#upload-form').on('submit', function(e) {
e.preventDefault();
console.log($(this).serialize());
$.ajax({
url : $(this).attr('action'),
type: "POST",
data: $(this).serialize(),
success: function (data) {
console.log(data);
},
error: function (jXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
Dank, auch wenn ich bekommen Dateidetails von '$ ('# id_of_fileinput') [0] .files [0])' auf Browser-Konsole, sondern auf dem Server kommt es als null .. Ich bin mit Python - Flask-Framework auf Serverseite. Einige benutzerdefinierte Änderungen an Bildern vornehmen. Serverseite funktioniert gut, wenn ich das normale Formular abschicke. Probleme mit Ajax. Python-Code zum Empfangen von Details - 'request.form.get ('Datei')' Jeder Vorschlag. ? – Pradeep
In Ajax sollte dieser Prozess in Ordnung sein. Der einzige Unterschied ist die Verarbeitung auf der Serverseite. Dieser Beitrag könnte Ihnen bei Python und Flask Framework helfen. http://stackoverflow.com/questions/18334717/how-to-upload-a-file-using-an-ajax-call-in-flask – graceth