Loading... ### 问题描述 新浪图床接口现在开启防盗链了,不是weibo.com的访问都会返回403。不过这个很好解决,只用在headers里面改写referer就行了。 对于浏览器下载Header Editor插件并且配置headers就行了 ### 前端调用图片 前端调用的时候就很简单了只需要fetch + blobPermalink,使用 fetch 方法添加 headers 然后把结果加载到 `<img>` ```js const src = 'https://tvax1.sinaimg.cn/large/ec43126fgy1h20hgl4i0pj21401e0hdt.jpg'; const options = { headers: { 'Some-Header': '...' } }; fetch(src, options) .then(res => res.blob()) .then(blob => { imgElement.src = URL.createObjectURL(blob); }); ``` ### 接口调用图片 接口调用就比较简单了,我们只需要返回base64格式的图片数据就行了 需要通过异步请求设置请求头信息 使用 Buffer APIs 把二进制数据转换为base64 ```js const imgData = await axios.get('https://tvax1.sinaimg.cn/large/ec43126fgy1h20hgl4i0pj21401e0hdt.jpg', { responseType: 'arraybuffer', headers: { 'referer': 'https://www.weibo.com', }, }); const img = 'data:image/jpg;base64,' + Buffer.from(imgData.data).toString('base64'); ``` 最后再返回base64即可 最后修改:2024 年 04 月 17 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏