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项目部署

史努比博客