在 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 在生产中会发生变化,并且与我在代码中放置的内容不同?
我非常感谢 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。