2016-09-10 3 views
0

Im Grunde habe ich ein type="file", ich brauche ausgewählte Datei durch Ajax zu schicken, aber jedes Mal, wenn die Form erhalte ich eine Konsole Fehler vorlegen wird, die sagt:Wie Ajax xhr Fehler beheben in jquery

Error while submitting ajax

hier ist, wie ich myform einreichen:

$(document).ready(function() { 
$('form').submit(function(event) { 
    event.preventDefault(); 
    checkforImage($('#Propicselecter_file'), "yes"); 
}); 
$('[type="file"]').change(function() { 
    var fileInput = $(this); 
    checkforImage(fileInput, "no"); 
}); 
}); 

function submit_form(){ 
var fileInput = $('#Propicselecter_file'); 
$.ajax({ 
     url: '../propicuploader', 
     type: 'POST', 
     processData: false, 
     data: fileInput[0], 
     success: function(data){ 
     } 
    }); 
} 

function checkforImage(fileInput, submitornot){ 
if (fileInput.length && fileInput[0].files && fileInput[0].files.length) { 
    var url = window.URL || window.webkitURL; 
    var image = new Image(); 
    image.onload = function() { 
     $("#NotPictureerror_spn").text(""); 
     if(submitornot == "yes"){ 
     submit_form(); 

     } 
    }; 
    image.onerror = function() { 
     $("#NotPictureerror_spn").text("Chosen file is not an image, Please Try Again"); 
    }; 
    image.src = url.createObjectURL(fileInput[0].files[0]); 
} 
} 

Vielen Dank im Voraus :)

+0

Wie sieht Ihr Beitrag aus? – user3284463

+0

Mein 'post' enthält eine Datei gewählte Datei' type = "file" 'data – darees

Antwort

1

Versuchen Sie, ein formData Objekt im Vorbeigehen Statt des Dateiobjekts:

var form_data = new FormData(); 
form_data.append('file', fileInput.files[0]); 
$.ajax({ 
    url: '../propicuploader', 
    type: 'POST', 
    processData: false, 
    contentType:false, // Added 
    data: form_data, 
    success: function(data){ 
    } 
}); 
+0

Nun sendet es nichts, nur um zu wissen, dass ich versuchte \t alert (" FileInput [0]: + fileInput [0] .files [0 ] + "form_data:" + form_data); 'und das Ergebnis war' fileInput [0]: [object File] form_data: [object FormData] ' – darees

+0

@darees Antwort aktualisieren Versuchen Sie console.log (form_data) und überprüfen Sie die Anmeldung Ihre Konsole – user3284463

+0

Danke das hat funktioniert! – darees