在IE9環境下,前端的檔案上傳問題
阿新 • • 發佈:2019-02-15
最開始使用了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格式資料。