ajaxSubmit請求返回數據成功,但是不執行success回調函數


最近項目涉及到附件上傳就頭痛,一直在用plupload插件在做。。。ie9偶爾抽風但還是可以的。。。

然后有個需求,表格每行都有個上傳按鈕,頁面多上傳按鈕。

 

一、開始的時候,用plupload做的,多實例上傳

  將browse_button觸發按鈕,設置成數組,這種方法也可以實現上述需求,但是ie9沒反應,,,我不知道什么也不知道。。。
  打印了一下,ie9 的runtime是html4,然后把上傳方式調換了順序,沒用。。。
  上傳附件的時候,只執行了FilesAdded方法,不懂不懂
this.pluploader = new plupload.Uploader({
               runtimes: 'html5,flash,silverlight,html4', //上傳方式
               headers: {Accept: 'application/json; charset=utf-8'},
               browse_button: arr, //觸發按鈕
               url: this.uploaderUrl,
               flash_swf_url: '../common/lib/plupload/Moxie.swf', //flash上傳組件的地址
               silverlight_xap_url: '../common/lib/plupload/Moxie.xap',
               multi_selection:false,//不可選擇多個文件同時上傳
               filters: {
                  max_file_size: '50mb' //限定文件大小
                  // prevent_duplicates: true, //是否允許選取重復文件,默認false為允許
               }
            });

   以后我知道原因會更新的。。。

 

二、無奈,換了ajaxSubmit來做上傳,這個方法很久前被我拋棄了,因為在ie9,ajaxSubmit請求返回數據成功,但是不執行success回調函數。

  今天終於找到原因了,是返回數據的數據類型問題,ie9返回的數據是json字符串,不是對象。心累。

  設置請求參數 dataType:'text',就可以進入success,將數據類型JSON.parse()轉成對象就行了。

this.$el.find("form"+'.'+targetClass).ajaxSubmit({
     url: this.uploaderUrl,
     contentType: "application/x-www-form-urlencoded; charset=utf-8",
     dataType:'text',
     enctype:"multipart/form-data",
     method:"POST",
     type:"POST",
     data:obj,
     success: $.proxy(function (result, status) {          
       if(typeof(result)==='string'){
            result = JSON.parse(result)
         }
         if (result.success) {
            //上傳成功
        } else {}
      },this),
   error:
function(res) {} });

 

  

  

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM