本地主机上的 Nuxt serverInit axios 获取 ENOTFOUND
Nuxt serverInit axios on localhost getting ENOTFOUND
我正在制作一个网站,前端使用 NuxtJS,后端使用 Laravel。
我需要在每个页面上提供一些数据,所以我使用 nuxtServerInit 函数获取它,如下所示:
async nuxtServerInit({ commit }, { $axios }) {
const items= await $axios.$get('items')
commit('saveItems', items)
}
指向我的 Laravel 已经在线的应用程序时,这工作正常,但当我 运行 它在我的本地机器上时,它就不行了。我收到“get addrinfo ENOTFOUND 3213”错误。
我的 .env 文件包含 axios 的基础URL,所以本地是:
API_URL=http://127.0.0.1:8000/v1/
我尝试了很多方法但都无济于事。它在使用实时后端时工作,并且 API_URL 没有问题,因为它在除 nuxtServerInit 之外的所有其他 function/page 上工作。我试过了:
- 使用 nuxt/dotenv 以及他们新的 runtimeConfig 设置在 nuxt.config.js
中配置 Axios 的基础 URL
- 更改我的后端运行的端口
- 更改我的前端运行的端口
- 为我的本地后端添加自定义 URl(例如 devlocal.com 指向 localhost:8000)
但没有任何效果。我的 /etc/host 文件也正确包含 127.0.0.1,因为我看到它是解决本地大量 ENOTFOUND 错误的解决方案。
我还尝试将 .env 文件中的 API_URL 更改为
API_URL=localhost:8000/v1/
但后来我得到的是“ENOTFOUND 8000”,或者我将 Laravel 服务器设置到的端口。
请帮忙!
编辑:
在 dev 上切换 Axios 调试后,我发现请求中的主机名有误,这反过来导致 URL 不正确:
reusedSocket: false,
host: '3213',
protocol: 'http:',
_redirectable: [Circular *1],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
_currentUrl: 'http://3213/http://localhost:8000/v1/items',
我不知道“3213”是从哪里来的。我尝试在 nuxt.config.js 中将默认 host/hostnames/port 值设置为 Axios,但没有成功。
随机解决。我在我的环境变量 (Win 10) 中设置了一个名为“http_proxy”的代理变量。删了,没问题了。
我正在制作一个网站,前端使用 NuxtJS,后端使用 Laravel。
我需要在每个页面上提供一些数据,所以我使用 nuxtServerInit 函数获取它,如下所示:
async nuxtServerInit({ commit }, { $axios }) {
const items= await $axios.$get('items')
commit('saveItems', items)
}
指向我的 Laravel 已经在线的应用程序时,这工作正常,但当我 运行 它在我的本地机器上时,它就不行了。我收到“get addrinfo ENOTFOUND 3213”错误。
我的 .env 文件包含 axios 的基础URL,所以本地是:
API_URL=http://127.0.0.1:8000/v1/
我尝试了很多方法但都无济于事。它在使用实时后端时工作,并且 API_URL 没有问题,因为它在除 nuxtServerInit 之外的所有其他 function/page 上工作。我试过了:
- 使用 nuxt/dotenv 以及他们新的 runtimeConfig 设置在 nuxt.config.js 中配置 Axios 的基础 URL
- 更改我的后端运行的端口
- 更改我的前端运行的端口
- 为我的本地后端添加自定义 URl(例如 devlocal.com 指向 localhost:8000)
但没有任何效果。我的 /etc/host 文件也正确包含 127.0.0.1,因为我看到它是解决本地大量 ENOTFOUND 错误的解决方案。
我还尝试将 .env 文件中的 API_URL 更改为
API_URL=localhost:8000/v1/
但后来我得到的是“ENOTFOUND 8000”,或者我将 Laravel 服务器设置到的端口。
请帮忙!
编辑:
在 dev 上切换 Axios 调试后,我发现请求中的主机名有误,这反过来导致 URL 不正确:
reusedSocket: false,
host: '3213',
protocol: 'http:',
_redirectable: [Circular *1],
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype]
},
_currentUrl: 'http://3213/http://localhost:8000/v1/items',
我不知道“3213”是从哪里来的。我尝试在 nuxt.config.js 中将默认 host/hostnames/port 值设置为 Axios,但没有成功。
随机解决。我在我的环境变量 (Win 10) 中设置了一个名为“http_proxy”的代理变量。删了,没问题了。