1. 程式人生 > >IE相容模式檔案上傳所遇問題解決

IE相容模式檔案上傳所遇問題解決

     近期搭建erp新架構的時候,遇到一個檔案上傳問題,下面談一下問題的出現和解決過程。

     專案技術架構如下,springboot+jquery+adminlte+jpa+spring jdbc。前端做檔案上傳採用了jquery.form.js的ajaxSubmit方法,該方法可實現頁面無重新整理提交form表單以及檔案上傳。功能開發所用瀏覽器是谷歌,但是因為要求相容ie,特別是要在ie相容模式下也能使用。功能開發完畢後,谷歌下完美執行,但是在ie相容模式下,卻報錯了,點了儲存按鈕後,資料提交到了後端,後端報錯了,前端瀏覽器也因為後端報錯無法返回,控制檯也出現了錯誤資訊。錯誤資訊如下:

IE application download did not succeed,check your
springmvc: current request is not a multipart request

一開始看到ie報錯,第一反應是js不相容,比如jquery版本或者jquery.form.js版本不相容,一度試圖更換版本,但是後來,除錯後,發現請求能到後端,而且後端報錯了,便順著springmvc的報錯解決問題。報錯提示請求不是一個多媒體請求型別,那麼問題很可能就是請求型別沒有設定正確。後來經過除錯發現不是這個問題,而是響應型別的問題,便在後端獲取到httpservletresponse物件,然後設定響應型別為text/html.但是依然沒用。偶然看到requestmapping可以通過prodeces屬性設定響應型別,抱著試一試的心態,設定了響應型別@RequestMapping(value="/save",produces="text/html;charset=utf-8")問題就解決了。