阿里云OSS开启防盗链后,上传视频(分片上传)时苹果电脑浏览器报错XHR error (req “error”), PUT https://file.test.net/?referer= -1 (connected: false, keepalive socket: false),导致无法上传文件
vue项目通过OSS Browser.js SDK调用相关文件操作接口
01.问题
1.OSS开启防盗链后,报请求头还是没有配置referer
2.在封装的request.js中已配置referer
3.vue.config.js代理配置中已配置referer
控制台错误如下图所示
02.问题分析
1.上传图片时并未出现该错误
2.window 电脑上传视频即使控制台输出错误,也能正常运行
3.苹果 电脑上传视频时控制台也会输出错误,但不能继续运行
03.问题解决
1.需在请求阿里云的请求方法中配置headers
2.headers中配置参数为’Referer’: ‘www.test.net’ (阿里云OSS控制台绑定的OSS源站点的域名)
3.阿里云OSS控制台绑定的OSS源站点的域名最好添加上本地ip地址(192.168.88.*),否则本地或测试环境无法访问阿里OSS文件
配置如下图所示
特殊情况
请求阿里云sdk前调用了putBucketReferer(client) 方法,如下图所示
图中的方法也会出现该错误,去掉后即可恢复正常
参数介绍如下图所示