在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就有可能出現下載提示框。