當前位置:
首頁 > 知識 > 文件上傳返回JSON數據,在IE9下提示下載文件

文件上傳返回JSON數據,在IE9下提示下載文件

在項目開發的時候,遇到一個文件上傳後,在ie9瀏覽器下返回JOSN數據,提示保存下載的問題,圖下圖所示。

文件上傳返回JSON數據,在IE9下提示下載文件

原因

upload上傳使用了兩種方式上傳文件。對於支持XMLHTTPRequest文件上傳的瀏覽器,使用XMLHTTPRequest上傳文件,而對於那些不支持XMLHTTPRequest文件上傳的瀏覽器,轉換為iframe來上傳文件。

IE9正屬於不支持XMLHTTPRequest文件上傳瀏覽器之一。

解決思路:

基於iframe上傳文件,對於返回json對象,如果把響應頭的content-type設為"application/json",在ie中會彈出下載文件的提示框。解決這個問題的方式是把響應頭的content-type的值設為"text/plain"或者"text/html"。

解決方案:

  1. 後台返回json串,而不是json對象,如 return Json(new { state = 1, msg = "" });改為return Content(" {state:1,msg:""}"); 前台ajax接收類型datatype:由json改為text。成功後接收的data轉成json對象即可使用: vardata = eval("(" + data1 + ")");
  2. 後台依然返回json對象, returnJson(new { state = 1, msg = "" },"text/html");
  3. 前端不需要改動。

文件上傳返回JSON數據,在IE9下提示下載文件

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 極客教程 的精彩文章:

教你百家號一篇文章就能收益幾百,月入過萬簡簡單單
艱難但必須學會的談話

TAG:極客教程 |