为什么 Fly.io 生产中的 Next.js 15 Fetch URL 会发生变化?

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

在 Fly.io 上托管的生产 next.js 15 上获取帖子时,获取中的 URL 正在更改并导致 404 未找到;

chrome开发工具的网络选项卡中的请求URL是:

https://www.rleaguez.com/organizationz/www.rleaguez.com/api/v2/organization

在控制台日志中,我注销了我正在使用的网址,它是:

https:www.rleaguez.com/api/v2/organization

我使用的获取代码是:

  const postUrl = 'https:www.rleaguez.com/api/v2/organization';
  console.log("🚀 ~ CreateOrg ~ postUrl:", postUrl)
  const orgResponse = await fetch(
    postUrl,
    {
      method: 'POST',
      headers: {
        'content-type': 'application/json',
      },
      body: JSON.stringify(data),
    },
  );

如果 url 是硬编码的,例如帖子下面的代码块,则成功:

  const orgResponse = await fetch(
    // hardcoded url below is successful
    ‘https://www.rleaguez.com/api/v2/organization’,
    {
      method: 'POST',
      headers: {
        'content-type': 'application/json',
      },
      body: JSON.stringify(data),
    },
  );

URL“https:www.rleaguez.com/api/v2/organization”对于 API 发布来说是正确的。我看到 Jabaa 的评论,其中这个网址看起来不正确,但事实却是。

为什么 URL 在生产中会发生变化,并且与我在代码中放置的内容不同?

javascript api next.js fetch next.js15
1个回答
0
投票

我非常感谢 Jabaa 的帮助,解释了 URL 无效,因为 URL 中 https: 后面缺少 //;

将网址更新为

const postUrl = 'https://www.rleaguez.com/api/v2/organization';

来自

const postUrl = 'https:www.rleaguez.com/api/v2/organization';

纠正了问题;我猜因为这是一个无效的 URL,所以帖子 url 被更改为使用我所在的页面来前缀发布 url。

© www.soinside.com 2019 - 2024. All rights reserved.