本地主机上的 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 上工作。我试过了:

但没有任何效果。我的 /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”的代理变量。删了,没问题了。