记录axios上传到阿里云OSS的两个小坑 2022年12月26日 3069 代码厨子 axios以前用的不多,最近使用的时候踩了两个小坑,记录一下,便于以后再遇到。 由于项目需要,系统需要在前端先向后端请求上传阿里云OSS的权限,然后通过前端直传OSS,在这个过程中,遇到两个问题,然后逐一解决了。 ## 上传时提示跨域问题 就是那种传统的提示跨域问题,可是oss的header已经设置位*了,可是依然不行,最后发现,因为axios的配置问题 ```javascript axios.defaults.withCredentials = false; ``` 这个值默认是 true 改为false即可,实际上意思就是别带啥cookie认证啥的乱七八糟信息的意思。 ## 上传报405类的错误 上面设置后,依然上传有问题,说什么key没有啥的,后来发现,原来是在做FormData时候,有顺序要求 ```javascript const param = new FormData(); // 创建form对象 param.append("key", oss.data.key); param.append("policy", oss.data.policy); param.append("OSSAccessKeyId", oss.data.OSSAccessKeyId); param.append("signature", oss.data.signature); param.append("file",base64ToBlob(e.target.result) as string | Blob); ``` 以上为正确的顺序,简单说,file必须放最后,放第一个就出事了!~~