OBS JS-SDK报TypeError: xxxx is not a function 的一种原因
【摘要】 在有客户使用华为云OBS JS-SDK做对象上传 操作时候,代码如下所示,引入进度条回调函数时候会报TypeError的错误。// 创建ObsClient实例var obsClient = new ObsClient({ access_key_id: '*** Provide your Access Key ***', secret_access_key: '***...
在有客户使用华为云OBS JS-SDK做对象上传 操作时候,代码如下所示,引入进度条回调函数时候会报TypeError的错误。
// 创建ObsClient实例var obsClient = new ObsClient({ access_key_id: '*** Provide your Access Key ***', secret_access_key: '*** Provide your Secret Key ***', server : 'https://your-endpoint'});var callback = function(transferredAmount, totalAmount, totalSeconds){ // 获取上传平均速率(KB/S) console.log(transferredAmount * 1.0 / totalSeconds / 1024); // 获取上传进度百分比 console.log(transferredAmount * 100.0 / totalAmount); }; obsClient.putObject({ Bucket : 'bucketname', Key : 'objectname', SourceFile : document.getElementById('input-file').files[0], ProgressCallback: callback }, function (err, result) {
报错截图如下:
此类错误在没有加入进度条回调函数的情况下是没有的,加上就会出现。
这个时候就要注意,在js的开发中是引入来mockjs导致,在mockjs中会全局改写 XMLHttpRequest,导致原生的一些属性方法失效。具体mockjs 修改的代码地址如下:
https://github.com/nuysoft/Mock/blob/refactoring/src/mock.js
解决方法建议是不要使用mockjs;mockjs改写XMLHttpRequest,对于开发中其他模块进行http开发中使用一些增值特性或功能都会有意想不到的影响,因此建议不要在商用开发版本中使用此库,特别是和较多的第三方云服务有对接时候。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)