js上传时,parseJSON(info)无法执行?

'FileUploaded': function(up, file, info) {
                alert("上传成功");
                // 每个文件上传成功后,处理相关的事情
                // 其中 info 是文件上传成功后,服务端返回的json,形式如
                // {
                //    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
                //    "key": "gogopher.jpg"
                //  }
                // 参考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html

                 var domain = up.getOption('domain');
                 var res = parseJSON(info);
                 var sourceLink = domain + res.key; //获取上传成功后的文件的Url

通过alert(info)可以看到info是有值的且正确的,
但var res = parseJSON(info);就停住了。

自行解决了,这样写就行了
var res = JSON.parse(info);
七牛用的似乎还是老的jquery?我也不是很清楚

另外:var sourceLink = domain +"/"+res.key; //获取上传成功后的文件的Url
需要加一个 /,否则最后拼起来无法访问的。

还有uptoken_url: 'token',
//Ajax请求upToken的Url,强烈建议设置(服务端提供)

至少说明下ajax要取说明格式的数据吧,结果我自己去看了qiniu.js的源码才看到res.uptoken
var getUpToken = function() {

        if (!op.uptoken) {
            var ajax = that.createAjax();
            ajax.open('GET', that.uptoken_url, true);
            ajax.setRequestHeader("If-Modified-Since", "0");
            ajax.onreadystatechange = function() {
                if (ajax.readyState === 4 && ajax.status === 200) {
                    var res = that.parseJSON(ajax.responseText);
                    that.token = res.uptoken;
                }
            };
            ajax.send();
        } else {
            that.token = op.uptoken;
        }
    };
阅读 2.7k
1 个回答

七牛很多的功能都是看了源码才了解的,楼主赞

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进