上传失败 token not specified

发布于 2022-09-02 20:31:25 字数 2578 浏览 19 评论 0

同样的代码
在www.a.com 下上传正常
在www.b.com 下,相同的代码,通过www.a.com 拿到token 上传报错 error: "token not specified

uptoken_func 下uptoken 返回了空值之后才被 ajax 回调过来的数据赋值,所以上传的时候 token 为空


var qiniu_up = qiniu.uploader({
            runtimes : 'html5,flash,html4',
            browse_button : 'qiniu_browse',
            get_new_uptoken: true,
            unique_names: false,
            save_key : true,
            domain : '<?php echo QINIU_BUCKET_SITE;?>',
            container : 'container',
            max_file_size: '4mb',
            flash_swf_url : '<?php echo RES_ROOT.'/assets/js/plupload/Moxie.swf';?>',
            silverlight_xap_url : '<?php echo RES_ROOT.'/assets/js/plupload/Moxie.xap';?>',
            max_retries: 1,
            dragdrop: false,
            drop_element : 'container',
            chunk_size : '4mb',
            auto_start: false, /*不开启自动上传*/
            multi_selection: false, /*设置为只能选择单个文件*/
            filters : {
                mime_types : [{title : 'Image files', extensions : 'jpg,jpeg,gif,png,bmp'},{title : 'Voice files', extensions : 'mp3,wav'}]
            },
            init : {

            },
            uptoken_func: function(file){
              var uptoken = '';
              var media_info = '[{"directory": "1","directory_class": "","up_file_name": "'+file.name+'","media_type": "1"}]';
                 $.ajax({
                     type : "post",
                     async : false, /*必须使用同步*/
                     url : '<?php echo WEBSITE_URL.'/qiniu_upload/media_uptoken';?>',
                     data : {
                         app_version : '1.0',
                         app_target : 3,
                         sdk_version : '1.0',
                         plat : 'other',
                         media_info : media_info
                     },
                     dataType : "jsonp",
                     jsonp: "jsonpCallback",
                     success : function(data){
                         if(data.code == '1') {
                             var list = data.data.uptoken_list;
                             uptoken = list[0]['uptoken'];
                             media_id = list[0]['media_id'];
                         } else {
                             alert(data.message);
                         }
                     },  
                     error : function(XMLHttpRequest, textStatus, errorThrown){  
                        
                     }  
                 });
                return uptoken;
            }
        });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

围归者 2022-09-09 20:31:25

uptoken_func 下的ajax 跨域了以后他的运行顺序变了 所有的程序都执行完了才执行到success 下的uptoken 的被赋值,所以上传上去的uptoken 为空

蓝天 2022-09-09 20:31:25

看楼主的代码 好像是往七牛CDN上面上传文件
token的问题 楼主可以看看是不是JS跨域问题 你也可以看看七牛的开发文档 或者 联系七牛的技术人员联调一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文