Nuxt 3 $fetch 方法不适用于 golang 服务器?

UPD:你可以自己检查一下:https ://github.com/Rusinas/nuxt-fetch-bug

我知道我知道这听起来很愚蠢,服务器语言与此类问题无关,但请听我说完。

我正在尝试使用 $fetch()(或 useFetch,没有区别)从我的本地服务器加载数据,但出现此错误:

FetchError: fetch failed ()

没有提供任何其他细节。服务器正在使用 Golang/Fiber 运行。当我尝试通过 Postman 加载相同的端点时,一切正常:

http://img2.mukewang.com/63b3f1bc0001e52d07640838.jpg

但是当我尝试在我的 nuxt 3 应用程序中加载 SAME 端点时:

http://img3.mukewang.com/63b3f1ca0001860305410094.jpg

我明白了:

http://img3.mukewang.com/63b3f1d900012a1210430118.jpg

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

http://img4.mukewang.com/63b3f1ed000123a205990021.jpg

更奇怪的是,如果我运行完全相同的服务器(或任何其他随机 API)的 nodejs 版本,我不会收到任何错误。

我很确定我的服务器工作 100% 正确,但也许我丢失了一些标头或其他东西,这是自动放置的?这是我的响应标题:

http://img4.mukewang.com/63b3f1f80001489b06540200.jpg

我还检查了 nodejs 响应标头:

http://img1.mukewang.com/63b3f20500015e6306790258.jpg

似乎没有问题。

我不知道发生了什么,也不知道在 nuxt js 的服务器端检索异步数据的其他方法。我已经安装了 axios,但由于某种原因它会抛出随机错误并在客户端工作,这使得使用 nuxt 变得毫无意义。但是,axios 可以调用此端点并返回我的数据,但只能在浏览器中调用(尽管我在没有任何挂钩的情况下在设置函数中调用它)。我现在正在考虑转行


UYOU
浏览 198回答 2
2回答

炎炎设计

问题是 fetch() 由于某种原因没有重新调整 localhost:9000,但是当我将 BASE_URL 更改为 127.0.0.1:9000 时它开始工作我有同样的错误:FetchError: fetch failed ()更改localhosturl127.0.0.1为我工作。作为单独的答案写作,因为有些人可能无法在评论中找到它。

MM们

首先,我认为你使用$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", "*")希望我有所帮助:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go