jQuery MiniUI

标题: ajaxFileUpload返回值不同的浏览器效果不同 [打印本页]

作者: mini_cxq    时间: 2019-9-5 15:38:35     标题: ajaxFileUpload返回值不同的浏览器效果不同

$.ajaxFileUpload({
            url: uploadData.data.url,                 //用于文件上传的服务器端请求地址
            secureuri: false,
            fileElementId: inputFile,               //文件上传域的ID
            data: uploadData.data,            //附加的额外参数
            dataType: 'json',                   //返回值类型 一般设置为json
            success: function (data, status)    //服务器成功响应处理函数
            {
                    if(data.success){
                            mini.get("errTextArea").setValue(data.msg);
                    }else{
                            var te = "导入失败\n";
                            for(var i=0;i<data.obj.length;i++){
                                    te = te + data.obj[i] +"\n";       
                            }
                        mini.get("errTextArea").setValue(te);
                    }
            },
            error: function (data, status, e)   //服务器响应失败处理函数
            {
                    var errText = data.responseText.substring(0,data.responseText.indexOf("<"));
                    var errJson = mini.decode(errText);
                    if(errText==""){mini.get("errTextArea").setValue("数据重复上传,30秒后可重新上传");return;}
                    var te = "";
                    if(errJson.success){mini.get("errTextArea").setValue(errJson.msg);return;}else{te=te+"导入失败"+"\n"}
                    for(var i=0;i<errJson.obj.length;i++){
                            te = te + errJson.obj[i] +"\n";       
                    }
                mini.get("errTextArea").setValue(te);
            },
            complete: function () {
                    mini.hideMessageBox(messageId);
            }
        });
这个控件上传的时候,后台同样的参数,qq浏览器的返回值在error里,google的返回值在success里


作者: felt    时间: 2019-9-5 16:51:25

error的时候看返回的错误信息是什么
作者: mini_cxq    时间: 2019-9-5 17:57:24

本帖最后由 mini_cxq 于 2019-9-6 08:39 编辑
felt 发表于 2019-9-5 16:51
error的时候看返回的错误信息是什么

[attach]12428[/attach]
  //dataType: 'json',                   //返回值类型 一般设置为json
之前报错,是我指定了返回类型
去掉后,然后  在/ajaxfileupload.js里加入
if (type == "json")
            //eval("data = " + data);//原生自带的
                console.log(1);//这句没用,但是不能去掉
                data = jQuery.parseJSON(jQuery(data).text());
就可以进success了


作者: felt    时间: 2019-9-6 10:42:16

mini_cxq 发表于 2019-9-5 17:57
//dataType: 'json',                   //返回值类型 一般设置为json
之前报错,是我指定了返回类型
...

我们检查一下,可能不同浏览器返回的数据格式不同了,引起了解析问题。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2