【发布时间】:2021-08-17 14:20:48
【问题描述】:
我制作了一个 create-react-app,我在我的机器上静态构建和运行它作为 OBS 插件,没有使用 Hashrouter 的服务器。我正在从已设置为公开的 Google 表格中获取数据。使用这种格式的 url https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/{sheetNo}/public/values?alt=json 我能够以 JSON 格式获取数据以在我的应用程序中使用。但是,过去一周的响应变得不一致,应用没有任何变化。
当我在浏览器中访问 URL 时,它总是加载 JSON 的纯文本版本。但是,在我的应用程序中发送 GET 请求时,有 60% 的时间会出现 404 错误。我在请求中尝试了不同的标头,但似乎找不到任何可以始终如一地工作的东西。
这是我进行提取的函数。我在 useEffect 挂钩中调用它。
const getData = async (url) => {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`fetch error. status: ${response.status}`);
}
return await response.json();
} catch (err) {
return err;
}
};
我收到的 404 响应是:“抱歉,此时无法打开文件。请检查地址并重试。”
我认为这与我在没有运行服务器的情况下从本地文件调用这一事实有关。如果可能的话,我想保持这种方式,只是为了让 OBS 运营商变得简单。我尝试向我的 fetch url (key={APIKEY}) 添加一个 API 密钥,但这似乎没有任何区别。关于可能导致此行为的任何想法?
【问题讨论】:
-
要跟进,下面@MattKing 答案中的链接有一个接受的答案,现在对我有用。 support.google.com/docs/thread/121088347/…
标签: reactjs google-sheets fetch