Get JSON-Antwort vom Formular Absenden
Ich bin nicht auf front-end-developer und ich verbringen viel Zeit versuchen zu tun. Hoffe, Euch kann mir helfen.
Ich habe ein Formular, das senden von Dateien an eine API-server, wie unten:
<form id="uploadForm" action="url/upload/" method="post" enctype="multipart/form-data" accept-charset="ISO-8859-1">
<div class="inputFileCustom">
<input type="file" size="45" name="file" id="uploadFiles" accept="application/pdf"/>
<label for="uploadFiles">
<div class="ic-bt ic-bt-details ic-bt-text btn btn-border">
Choose a file
</div>
</label>
</div>
<input type="submit" value="Upload PDF" class="btn btn-primary" />
</form>
url/upload
gibt einen JSON, wie:
{ "status": "ok"/"fail" }
Brauche ich zwei Dinge:
- Verhindern abschicken umleiten auf
url/upload
; - Bekommen JSON-Antwort vom server und wenn dies erfolgreich ist, rufen Sie
loadFiles()
- Funktion (die ist bereits in Arbeit).
Bin ich mit javascript für loadFiles()
Funktion, aber es ist sehr einfach.
- bitte teilen Sie loadFiles () - Funktion
- Benutzt du jQuery? Sie können installieren Sie einen Ereignis-listener auf "senden" für Ihre form und Ereignisse verwenden.preventDefault() nicht aufrufen 'url/upload' nach dem senden. Kombinieren Sie es mit einigen AJAJ und du bist fertig.
- Ich bin mit jQuery und ich versuchte es. Aber jeder ajax-code gearbeitet. Bekam ein Bad Request Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die jquery-Formular-handler,
Finden Sie diese stackoverflow-Frage
var formData...
Linie, rufturl/upload
.Uncaught TypeError: Illegal invocation
. Ich habe versucht, ändern formData mit dem Namen aber immer noch nicht funktioniert.formData.append("uploadFiles"...
auf einen Namen, auf welchem server war das warten.Sieht es aus wie Sie benötigen, um post-request mit Javascript. Wenn Sie JQuery verwenden, können Sie
$.ajax
zum Beispiel:Verwendung dieser bedeutet, dass es nicht leiten Sie die Seite, Weg von der form, so dass Sie anzeigen können Erfolgs-oder Fehlermeldungen auf dem gleichen Bildschirm.
Sehen http://api.jquery.com/jquery.ajax/ weitere Informationen
Überprüfen Sie diese Geige: https://jsfiddle.net/41mnz0z1/
e.preventDefault()
verhindert, dass die standard-Aktion der browser nach dem Absenden des Formulars (Umleitung auf eine andere Seite weitergeleitet).data: $(this).serialize()
sendet das Formular die Daten zu Ihrer gewünschtenurl: 'fileUpload.php'
.Es funktioniert das gleiche mit einer Datei.
$(this).serialize()
einen Fehler zurück. Wenn ich mit dem Namen in der Eigenschaft URL (url + fileToPost) es gibt Schlechte Anfrage.