【发布时间】:2021-09-17 22:46:51
【问题描述】:
我在尝试从 Square API 中提取库存时遇到此错误。
injectGlobalHook.js:1648 Fetch API cannot load webpack-internal:///./node_modules/@next/react-dev-overlay/lib/internal/ReactDevOverlay.js. URL scheme "webpack-internal" is not supported.
我正在将我的 React.js 项目转换为 Next.js,所以我只是想了解两者之间的区别。
最初,我在config 文件中使用proxy 提取数据以避免CORS Error,但我知道这暂时只是一种解决方法,因为我需要隐藏API_KEY。
现在我尝试在 Next.js 后端选项中使用 getServerSideProps 以正确的方式调用 API
export async function getStaticProps() {
const allStockObjects = await fetch(requests.fetchAllStock, {
method: "GET",
headers: headers,
})
.then((res) => res.json)
.catch((err) => console.log(err));
return {
props: {
allStockObjects,
},
};
}
这是我的导出,但我在一个组件中有完全相同的导出,POST 请求以相同的方式对同一个 Square API 完成,并且它工作得非常好。
我还在我的 Square Dashboard 上检查了我的 APILogs,但该请求根本没有发送到 API。
关于这个错误或 Square API 的网上不多,所以我希望有人能提供帮助。
【问题讨论】:
-
requests.fetchAllStock是否包含预期值? -
在我的情况下,这是由于 webpack 无法检测到的语法错误(它是重复的变量名)。你能提供更多代码吗?你在标题中传递了什么? requests.fetchAllStock 返回什么?
-
@juliomalves 它只有指向特定 API 的 url 链接
-
@juliomalves 我发现错误是由于我在
_app.js文件中调用 getStaticProps 造成的(next.js 在该级别阻止 API 调用)。不过,我仍然无法在整个应用程序中传播这些数据。因为我在每个页面中都需要allStock,以防万一用户共享特定页面。目前我在每个页面上调用fetchAllStockAPI,但我希望它在最高级别的组件中调用一次。 -
@juliomalves 是的,抱歉,在看到您对我的其他问题的评论之前,我回复了此消息!我很感激!
标签: javascript reactjs next.js square