ajaxSubmit请求返回数据成功,可是不执行success回调函数

最近项目涉及到附件上传就头痛,一直在用plupload插件在作。。。ie9偶尔抽风但仍是能够的。。。html

而后有个需求,表格每行都有个上传按钮,页面多上传按钮。html5

 

1、开始的时候,用plupload作的,多实例上传ajax

  将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为容许
 } });

   之后我知道缘由会更新的。。。json

 

2、无奈,换了ajaxSubmit来作上传,这个方法好久前被我抛弃了,由于在ie9,ajaxSubmit请求返回数据成功,可是不执行success回调函数。数组

  今天终于找到缘由了,是返回数据的数据类型问题,ie9返回的数据是json字符串,不是对象。心累。app

  设置请求参数 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) {} });
相关文章
相关标签/搜索