帖子
帖子
用户
博客
课程
显示全部楼层
61
帖子
0
勋章
394
Y币

[BUG] api.ajax方法传文件有问题啊!

[复制链接]
发表于 2016-1-15 19:47:35
现在发现以前正常的方法,现在出错了。经测试,是一旦ajax方法里面的data含有“files”子项,则服务端什么数据都取不到,包括values里的数据和files里的文件。这是个严重的bug,请尽快修复,谢谢!

附我使用的部分代码片段:
        var url = APP_ROOT+'/accounts/changeUserInfo/';
        var user_id = window.localStorage.getItem('user_id');
        var data1={"sys_code":sys_code,'user_id':user_id};
        var data2={};
        if(portrait){
                data2['portrait'] = portrait;
        }
        if(nick_name){
                data1[KEY_NICK_NAME] = nick_name;
        }
    if(msgPrompt != null && msgPrompt != undefined){
        data1[KEY_MSG_PROMPT] = msgPrompt;
    }
    if(voice != null && voice != undefined){
        data1[KEY_VOICE_PROMPT] = voice;
    }
    if(vibration != null && vibration != undefined){
        data1[KEY_VIBRATION_PROMPT] = vibration;
    }
        alert('data1:' + JSON.stringify(data1) + ', data2:' + JSON.stringify(data2));
        api.ajax({
            url: url,
            method: 'post',
            timeout: 30,
            dataType: 'json',
            returnAll:false,
                data:{
                        values:data1
//                        files:data2
                },
        },function(ret,err){


这里这样写是可以收到data1的数据的,一旦把files前面的注释去掉,并在上一行加分隔逗号“,”,那么服务端就什么数据也收不到!

61
帖子
0
勋章
394
Y币
经测试,是安卓上有问题,iOS上则是正常的。
20
帖子
1
勋章
7581
Y币
apploader确实存在该问题,请使用自定义loader进行调试,或者网站控制台编译正式版。
5
帖子
0
勋章
28
Y币
我也是这个问题
18
帖子
0
勋章
214
Y币
不知道你后端用得什么语言  当value和file一起的话 就是相当于表单中的 multipart/form-data 数据类型提交,也就是二进制了,你直接获取是获取不到的,需要经过二进制编码才行!
24
帖子
0
勋章
141
Y币
怎么解决的?
您需要登录后才可以回帖 登录

本版积分规则