用ajaxfileupload上传文件在ie浏览器下报错(SCRIPT65535: 调用的对象无效),上传文件在要兼容ie8浏览器的要求下大家一般使用什么方法,自己写插件嘛?
var formData = new FormData(); var file=document.getElementById("myfile").files[0]; formData.append("myfile", file); $.ajax({ type: 'post', url: "", async: true, data: formData, contentType: false, processData: false, dataType: "text", success: function (result) { }, error: function (e) { }, //上传进度 xhr: function () { var xhr = $.ajaxSettings.xhr(); if (onprogress && xhr.upload) { xhr.upload.addEventListener("progress", onprogress, false); return xhr; } } }); function onprogress(evt) { }
contentType: false,
processData: false,
这两个属性非常重要,非常重要,非常重要
我之前也是这样处理的,但是ie9及以下浏览器不支持FormData(),目前想要兼容ie8和ie9
@吴默默の秘密花园: 那就用iframe+form表单上传,这样也可以实现无刷新上传
参考:http://www.jb51.net/article/67849.htm
这个组件也可以试试 http://www.cnblogs.com/lhb25/p/html5-flah-web-file-uploader.html
http://www.jq22.com/search?seo=AJAX%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0仅作参考
$("#提交按钮id").click(function () { var formData = new FormData($( "#表单id" )[0]); $.ajax({ url: "", type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (returndata) { var msg = eval('(' + returndata + ')'); if(msg.msg=="添加成功"){ $.msg_show.Init({ 'msg':"上传成功", 'type':'success' }); }else{ $.msg_show.Init({ 'msg':"上传失败!", 'type':'error' }); } } }); });