首页 > 解决方案 > 谷歌云存储对象的 JS 获取给出了不透明的响应

问题描述

我正在尝试从浏览器客户端获取存储在 Google Cloud Storage 上的图像。但是,我得到了一个不透明的回应。我已经生成了存储在 data.Prof.Images 数组中的 SignedUrls,当我在浏览器中复制它们时它们正在工作,它们应该给出 Base64 字符串的 Body 响应。有没有人遇到过如何让谷歌云存储在从 JS 获取时发送非透明响应?

function fetch_img_params() {
    return {
        method: 'GET',
        mode: 'no-cors',
    };
}

async function GetImages() {
    for (let i=0; i < data.Prof.Images.length; i++) {
        img_res = await fetch(data.Prof.Images[i], fetch_img_params());
        img = await img_res.text();
        document.querySelector("#img" + i).src = img;
    }
}

标签: javascripthttpgoogle-cloud-storage

解决方案


no-cors由于您在 中设置的参数,会出现不透明的响应fetch_img_params()

根据此文档

no-cors 旨在向没有 CORS 标头的其他来源发出请求并导致不透明的响应

尝试使用不会返回不透明响应的不同响应类型。


推荐阅读