解决新浪图片防盗链403问题
文章目录

问题描述
新浪图床接口现在开启防盗链了,不是weibo.com的访问都会返回403。不过这个很好解决,只用在headers里面改写referer就行了。 对于浏览器下载Header Editor插件并且配置headers就行了
前端调用图片
前端调用的时候就很简单了只需要fetch + blobPermalink,使用 fetch 方法添加 headers 然后把结果加载到 <img>
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
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即可
本文标题:解决新浪图片防盗链403问题
本文链接:https://blog.luola.me/25.html
除非另有说明,本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议。
声明:转载请注明文章来源。