Dies ist mein Ajax-Code, die eine Formdata mit einer Datei übermitteln. wenn ich entferne meine benutzerdefinierte Zeichenfolge „hat“ immer-Datei, die Werke und „1234567“ .i erwarten zurückkehren muss „hat Datei 1234567“, sondern immer werfen [object] ObjektMVC Ajax-Return-String als [Objekt] Objekt
$(document).ready(function() {
$('#scan').change(function (e) {
debugger
var element = this;
var formData = new FormData();
var totalFiles = document.getElementById("scan").files.length;
var file = document.getElementById("scan").files[0];
formData.append("scan", file);
$.ajax({
url: '@Url.Action("scancode", "Products")',
type: "POST",
dataType: "json",
data: formData,
processData: false,
contentType: false,
success: function (data) {
$('#barcode').val(data);
},
error: function (err) {
document.getElementById('emsg').innerHTML = err;
}
});
});
});
-Controller
zurück
überprüfen, ob Sie sind Erhalten einer 200 OK-Antwort für Ihren Ajax-Anruf – Shyju
Sie können tatsächlich keine Zeichenfolge von einem Ajax-Aufruf zurückgeben. Geben Sie stattdessen ein JSON-Objekt zurück. Ändern Sie den Rückgabetyp in JsonResult: 'public JsonResult scancode (HttpPostedFileBase scan)' und anstelle von 'return str;' return the Json: 'return Json (neu {someString = str});' und in Ihrem Ajax-Aufruf: 'success: Funktion (Daten) {$ ('# barcode'). val (data.someString); } ' – Kapobajza
ist der' dataType: "json", 'in diesem Fall richtig? Ich denke nicht, dass Dateien über Ajax veröffentlicht werden können ... kann mich jemand korrigieren. – Searching