Sveltekit +page.server.ts 无法到达同一台机器上的后端

问题描述 投票:0回答:0

我在 GO 中有一个后端服务器运行在

localhost:8081
上,暴露了几个端点。这些端点可以通过 CURL、Postman 等请求很好地访问...

我正在尝试构建一个在开发默认端口上运行的 SvelteKit 前端应用程序

localhost:5137
。在
+page.server.ts
文件中,我有一个加载函数试图联系
localhost:8081
上的端点之一,但它不起作用。我只得到这个错误:

TypeError: fetch failed
    ...
  cause: Error: connect ECONNREFUSED 127.0.0.1:8081
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
    errno: -4078,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 8081
  }

我的

+page.server.svelte
- 加载函数的内容如下所示:

export async function load({fetch}) {
    const res = await fetch('http://localhost:8081/api/...');
    return await res.json();
}

甚至在 hooks.server.svelte 文件中检查并添加了缺失的原始标头:

export const handleFetch: HandleFetch = async({request, fetch, event}) => {
    request.headers.set('Origin', event.url.origin);
    return fetch(request)
};

但我似乎无法摆脱这个错误。来自外部公共 api 的其他端点运行良好,我可以从中检索数据。

如果有人有任何想法,将不胜感激。我都被谷歌搜索过了……


这里是使用的依赖列表:

  • NPM v9.6.4

  • node v16.13.0

  • “@sveltejs/adapter-auto”:“^2.0.0”,

  • “@sveltejs/kit”:“^1.5.0”,

  • "@typescript-eslint/eslint-plugin": "^5.45.0",

  • "@typescript-eslint/parser": "^5.45.0",

  • “eslint”:“^8.28.0”,

  • "eslint-config-prettier": "^8.5.0",

  • "eslint-plugin-svelte3": "^4.0.0",

  • “更漂亮”:“^2.8.0”,

  • “更漂亮的插件”:“^2.8.1”,

  • “苗条”:“^3.54.0”,

  • “苗条检查”:“^3.0.1”,

  • “tslib”:“^2.4.1”,

  • “打字稿”:“^4.9.3”,

  • “邀请”:“^4.0.0”,

  • “vitest”:“^0.25.3”

我期望端点可以像任何其他外部公共 API 一样访问并返回预期的数据,所以我也:

  • 检查各种 CORS 设置
  • 添加了缺失的标题
typescript frontend svelte sveltekit web-frontend
© www.soinside.com 2019 - 2024. All rights reserved.