以下代码在IE9中不会将文件数据发布到服务器。
FormData
() 对象看起来是问题所在,但不确定如何解决。
我使用了 form.serialize()
但这不是上传文件。
我犹豫是否要为此功能实现一个 JQuery 文件 uploader 。 有没有类似 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();
});
最佳答案
因为IE9不支持
http://caniuse.com/#search=formdata
完全相关:Post formdata via XMLHttpRequest object in JS ? ( cross browser)
关于javascript - 发布 FormData 在 IE9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470762/