img标签访问图片,返回403的解决方法
终极解决办法:服务器编写图片代理接口
const http = require("http");
const https = require("https");
// 图片代理
exports.proxyAPI = async (req, res, next) => {
try {
// 获取图片的原始URL
const imageUrl = req.query.url;
// 使用axios或http(s)模块获取图片
const protocol = new URL(imageUrl).protocol.replace(':', '');
const requestLib = protocol === 'http' ? http : https;
requestLib.get(imageUrl, (responseFromOrigin) => {
// 检查响应状态码是否正常
if (responseFromOrigin.statusCode !== 200) {
return res.status(responseFromOrigin.statusCode).end();
}
// 设置响应类型与原始响应一致
res.set('Content-Type', responseFromOrigin.headers['content-type']);
// 将原始响应的数据流转接到当前响应
responseFromOrigin.pipe(res);
}).on('error', (e) => {
res.status(500).send('内部服务器错误');
});
} catch (err) {
next(err)
}
}
上一篇
github部署静态网页
下一篇
Nuxt3项目部署