首页 > 解决方案 > 从 API 获取长 json

问题描述

我有一个谷歌云函数,我用它作为 API 来通过 fetch 调用检索一些数据。

当我在 wix 的前端使用我的函数时,它可以工作并检索所需的长 BASE64 序列(800ko)作为字符串,显示在控制台中。

当我在后端使用它时,它不起作用。

export async function toCode(imgURL, sequenceToTranslate) {

const api_url = "MY_API_URL";
// const key = await getSecret("QRAPIKey");

var myHeaders = {};
myHeaders["Content-Type"] = "application/json";
myHeaders["Authorization"] = "Bearer MY_KEY";

var raw = JSON.stringify({ "text": sequenceToTranslate, "width": 1500, "height": 1500});

var requestOptions = {
    method: 'POST',
    headers: myHeaders,
    body: raw
};

return fetch(api_url, requestOptions)
    .then((httpResponse) =>{
        if (!httpResponse.ok) { return Promise.reject("Fetch did not succeed");}
            console.log(httpResponse);// <== **Display in both front or back end**
            return httpResponse.json();
        })
    .catch((z) => { console.log(z); return z })

}

httpResponse.json()在前端工作,但在后端使用时不处理。

它不起作用的原因是我的API响应中的 DATA的大小。当我确保 base64 响应是大小的一半时:它在后端工作,我将数据作为控制台输入。

(为了便于阅读,我简化了请求的正文。)

有没有办法在不使用缓冲区或流的情况下,在后端实际获取从我的 API 检索到的长数据?

我不知道它是特定于 wix 还是我必须做的事情。

标签: javascriptgoogle-cloud-functionsfetchvelo

解决方案


推荐阅读