ajaxSubmit 上傳成功 儲存json檔案 問題解決,ajaxsubmitjson
客戶要求上傳檔案同時對返回結果在js中要做處理,發現ajaxform還挺好用的,然後一直在firefox測試都沒什麼問題,
可是在IE瀏覽器中執行就提示我儲存json檔案而沒有走我success的方法,網上有說要設定返回格式的類型為text/html可是我的還是不能通過。
然後我就在官網上下了一個最新的試試,引入我最新的js執行,完美通過,高版本就是好一點,相容性好、BUG率少
jQueryformjs 使用ajaxForm、ajaxSubmit提交表單上傳檔案後伺服器端返回json資料IE瀏覽器不可以解析
forum.jquery.com/...-in-ie
Hi,問我用jQuery的ajaxSubmit上傳,也出現了問題,不知怎解決
在ajaxSubmit提交表單的時候,如果表單內有檔案上傳的話,會判斷參數是否配置的iframe為false參數,如果沒有,會用建立隱藏iframe方式提交表單,如果設定了iframe為false,則判斷瀏覽器是否支援HTML5的fileAPI,支援就直接使用XHR方式提交,否則就當作普通表單提交。
所以因為是用隱藏iframe提交的表單,如果伺服器返回的是“application/json”類型的資料,IE和Chrome預設是下載檔案的,因為內容是返回給了iframe,而不是ajaxSubmit的success方法。在iframe載入了返回結果後,ajaxSubmit的success方法是去讀取iframe的內容來轉換成json對象使用。
解決辦法就是,在ajaxSubmit提交表單的配置裡面,增加一個參數,伺服器端判斷是否是ajaxSubmit提交過來的表單,是的話就返回“text/html”類型的內容,不是就可以返回“application/json”的。
簡單的說就是ajaxSubmit上傳檔案的話,返回的內容只能是網頁內容的,否則IE就有可能出現下載提示框。