1. 程式人生 > >在IE9環境下,前端的檔案上傳問題

在IE9環境下,前端的檔案上傳問題

最開始使用了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格式資料。