最开始使用了webuploader插件来做,可是一直发不出请求,在监听了他的uploaderror事件后,返回的错误是 “http”,在网上搜了一圈后发现是因为代理的一些问题,捣鼓了半天没弄好,就换了一个 “plupload”插件,还是发现了这个问题,最后只能用jquery-form来兼容IE9做文件上传。但还是遇到了个坑爹的问题:
<form id="fileUpload" name="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
</form>
<script>
document.querySelector('#file').onchange = function(){
$('#fileUpload').ajaxSubmit({
target: "#id_iframe",
url:'/api/MultiMedia/uploadImageToTemp',
dataType:'text',
type:'post',
success:function(res){
that.$Message.success('成功上传');
that.fileUploadSuc = true;
that.imageStoragePath = JSON.parse(res);
},
error:function(e){
console.log(e);
}
});
}
</script>
遇到问题:
如果后台返回的content-type 为json,在IE9下,请求回来的json数据会自动下载,从而阻断这个请求的过程,导致不能进入成功的回调函数(除了beforeSerialize回调可以正常执行,success和error回调都不能进去)。
解决方法:
需要后台修改content-type为非json格式数据。
最后附上别人的学习笔记参考:https://blog.csdn.net/m0_37505854/article/details/79639046