轻松解决webgl 图片跨域问题

使用 express在服务器端做个头像的代理,

exp.get(’/avatar’, (request: any, response: any, next: express.NextFunction) => {
return avatarProxy(request, response, next);
});

function avatarProxy(req: express.Request, res: express.Response, next: express.NextFunction) {
const avatarUrl = req.query.url;

request
.get(avatarUrl)
.on('response', (response) => {
    if (response.statusCode !== 200) {
        return next('failed to load img');
    }
    let rawData = '';
    response.setEncoding('binary');

    response.on('data', (chunk) => {
        rawData += chunk;
    });

    response.on('end', () => {
        res.end(new Buffer(rawData, 'binary'));
    });
});

}

就可以了,用户的头像地址存在数据库里变一下就行了
const random = new Random();
const server = random.pick(httpServers);
const avatarUrl = http://${server.clientHost}:${server.clientPort}/avatar?url=${account.avatar};

1赞

需要,备用

mark

持续关注