Javascript Post FormData在IE9中不起作用
以下代码不会将文件数据发布到IE9中的服务器Javascript Post FormData在IE9中不起作用,javascript,file,file-upload,Javascript,File,File Upload,以下代码不会将文件数据发布到IE9中的服务器 FormData()对象似乎是问题所在,但不确定如何解决 我使用了form.serialize(),但这不是上载文件 我很犹豫是否只为这个功能实现JQuery文件上传程序。 有没有一种简单的方法可以上传类似于FormData()的文件 //HTML 添加到购物车 //JS $(文档).on('click','addToCartButton',函数(事件) { var form_id=$(this).closest('form').attr('id')
FormData
()对象似乎是问题所在,但不确定如何解决
我使用了form.serialize()
,但这不是上载文件
我很犹豫是否只为这个功能实现JQuery文件上传程序。
有没有一种简单的方法可以上传类似于FormData()的文件
//HTML
添加到购物车
//JS
$(文档).on('click','addToCartButton',函数(事件)
{
var form_id=$(this).closest('form').attr('id');
var formElement=document.getElementById(form_id);
var odata=新的FormData(formElement);
//变量$form=$(“#”+表单id);
$.ajax({
网址:'http://localhost/cart/add',
数据:odata,/$form.serialize(),
键入:“POST”,
processData:false,//告诉jQuery不要处理数据
contentType:false//告诉jQuery不要设置contentType
}).完成(功能(数据)
{
var returnObject=jQuery.parseJSON(数据);
开关(返回对象状态){
成功案例:
警报(“商品添加到购物车”);
打破
案例“错误”:
警报(“发生错误”);
打破
案例“无文件”:
警报(“未检测到任何文件”);
打破
}
});
event.preventDefault();
});
这是因为IE9不支持它
完全相关:是的,我发现IE9不受支持,但是如果没有FormData,我如何使用jQ/ajax上传文件?我看过fileupload LIB,但我还想添加其他表单项,而不仅仅是文件。我看到的大多数库都只是上传一个文件。我希望能够在单个请求中发布文件和其他表单数据
// 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();
});