2013-10-14 21 views
1

在其他所有瀏覽器中,多上傳表單都可以工作。只有IE不喜歡它。當我嘗試提交表單IE在action =「」屬性中的頁面上啓動302重定向時。重定向到我的網站的根目錄。Malsup jQuery表單插件在IE重定向上傳302

我已經用iframe/textarea試過了,但這也不起作用。我在IE7,IE8,IE9上測試它。

回答

0

閱讀Here

這個問題已在github上討論過。

然後,它有助於準確理解插件的功能。由於IE < 10不支持ajax文件上傳,因此該插件通過提交原始表單並針對動態創建的iframe做出響應來模擬用戶體驗。當iframe加載服務器響應時,插件會提取響應並調用回調處理程序。

如果服務器響應頭部內容類型設置爲「application/json」,觸發IE的默認下載行爲。爲避免這種情況,請不要將content-type頭設置爲「application/json」。將其保留爲text/html或text/plain。

在服務器有一個實際的錯誤將與在響應 頭中設置合適的狀態碼返回 錯誤響應頁面的情況。這爲插件兩個問題:

  1. 它不能訪問的響應頭
  2. 它不能從響應體 請求是否是成功的

一個潛在的確定解決方案,如果您對錯誤響應 頁面有控制權,則在插件將尋找 的正文元素上添加屬性。該插件將嘗試訪問響應的主體元素上的「狀態」和「狀態文本」屬性。因此,如果您的錯誤頁面 包含類似的東西,那麼您的錯誤處理程序 將被觸發。

它只是需要對IE做小黑客

  1. 的text/html /的 '應用/ JSON的' 使用或純文本代替。
  2. 完全控制錯誤響應,在成功的響應主體中添加錯誤消息,然後提取並處理它。

No JSON response in jQuery form plugin in IE9