Post FormData funktioniert nicht im IE9
Den folgenden code nicht posten, die Daten der Datei auf dem server im IE9.
FormData
()- Objekt sieht das Problem aber nicht wissen wie Sie es beheben.
Ich verwendet form.serialize()
aber das ist nicht die Datei hochladen.
Im zögerlichen Umsetzung eine JQuery-Datei-uploader, die nur für diese Funktion.
Gibt es eine einfache Möglichkeit, um eine Datei hochzuladen, ähnlich FormData() ?
//HTML
<form name='aform' action='upload.php'>
<input type='file' name='afile'>
<input type='text' name='qty' value='1'>
<input type='hidden' name='product_id' value='7'>
<a class='addToCartButton'>Add to cart</a>
</form>
//JS
$(document).on('click', '.addToCartButton', function(event)
{
var form_id = $(this).closest('form').attr('id');
var formElement = document.getElementById(form_id);
var odata = new FormData(formElement);
//var $form = $('#'+form_id);
$.ajax({
url: 'http://localhost/cart/add',
data: odata, //$form.serialize(),
type: 'POST',
processData: false, //tell jQuery not to process the data
contentType: false //tell jQuery not to set contentType
}).done(function(data)
{
var returnObject = jQuery.parseJSON(data);
switch(returnObject.status) {
case 'success':
alert('Item added to cart');
break;
case 'error':
alert('An error occured');
break;
case 'no_file':
alert('No file was detected');
break;
}
});
event.preventDefault();
});
- caniuse.com/#search=formdata
- Ja, ich fand, dass der IE9 wurde nicht unterstützt, aber wie kann ich das hochladen von Dateien mit jQ/ajax ohne FormData ? Ich habe gesehen, fileupload-libs, aber ich will auch hinzufügen, andere form-Elemente nicht einfach nur Dateien. Die meisten libs sehe ich nur eine Datei hochladen. Ich möchte in der Lage sein zu posten Datei[en] und anderen Formular-Daten in einer einzigen Anfrage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist, weil IE9 nicht unterstützt.
http://caniuse.com/#search=formdata
Vollständig im Zusammenhang : Post formdata über XMLHttpRequest-Objekt in JS ? ( cross-browser)