这个问题通常与不同的请求URL路径有关。在本地开发环境中使用相对路径进行调试,而Heroku部署时则需要使用完整的URL路径。为了解决此问题,你可以将绝对路径作为变量保存,并在需要使用时进行检查和替换。
以下是一个示例(假设我们的服务器在本地的端口为3000,在Heroku上部署后的URL为https://myapp.herokuapp.com):
const baseUrl = process.env.NODE_ENV === 'production' ? 'https://myapp.herokuapp.com' : 'http://localhost:3000';
async function getData() {
const response = await fetch(`${baseUrl}/api/data`);
const data = await response.json();
return data;
}
在这个示例中,我们首先定义了一个变量baseUrl,它将根据当前的环境是本地开发环境还是Heroku部署环境来保存对应的URL路径。然后,在发送GET请求时,我们使用了${baseUrl}/api/data
这样的绝对路径,以确保请求的URL正确。
这样,无论你在何种环境中运行代码,都可以正确地发送GET请求了。