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)