UPD:你可以自己检查一下:https://github.com/Rusinas/nuxt-fetch-bug
我知道这听起来很愚蠢,因为地狱和服务器语言与这些问题无关,但请听我说完。
我试图使用$fetch() (或useFetch,没有区别)从本地服务器加载数据,但我得到了以下错误:
FetchError: fetch failed ()没有提供任何其他细节。服务器正在使用Golang/光纤运行。当我试图通过Postman加载同一个端点时,一切正常:

但是,当我试图在我的nuxt 3应用程序中加载相同的端点时:

我明白了:

但是我的golang服务器将此记录为成功:

更奇怪的是,如果我运行相同服务器的nodejs版本(或任何其他随机API),就不会出现任何错误。
我很确定我的服务器工作100%正确,但也许我丢失了一些标题或其他什么,哪个快递自动投?以下是我的响应头:

我还检查了nodejs响应头:

似乎没什么问题。
我不知道发生了什么,也不知道在nuxt服务器端检索异步数据的其他方法。我已经安装了axios,但是它会抛出随机错误,并且由于某种原因在客户端工作,这使得使用nuxt变得毫无意义。但是,axios可以调用这个端点并返回我的数据,但只能在浏览器中(尽管我在安装函数中调用它而没有任何钩子)。我现在想换个职业
发布于 2022-11-29 09:56:25
问题是,fetch()由于某种原因没有重新配置localhost:9000,但当我将BASE_URL更改为127.0.0.1:9000时,它就开始工作了。
我也犯了同样的错误:FetchError: fetch failed ()
将url中的localhost更改为127.0.0.1对我很有用。
写作作为一个单独的答案,因为有些人可能找不到它的评论。
发布于 2022-07-25 07:57:58
首先,我认为您使用$fetch的方式是错误的,例如,我看到过Nuxt使用fetch:
const data = await fetch(endpoint, {
method: "GET",
mode: "cors"
})
.then(resp => resp.json())对于服务器,只需在响应中启用CORS头,如下所示:
// you can replace the asterisk with the clients you want.
c.Append("Access-Control-Allow-Origin", "*")希望我有所帮助:)
https://stackoverflow.com/questions/73098374
复制相似问题