在本地主机和实时服务器中更改 api url

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

我已经使用代理在本地主机中调用了外部 api,它工作正常,但是当我在实时服务器中调用它时,代理将更改为我给出的服务器 url + api

我希望实时服务器中的网址保持不变。它应该和本地主机中的一模一样

代理; https://originaserver.com api: api/theresoftheapi 在实时服务器中,网址如下:https://seversideurl.com/api/thererestoftheapi

url proxy cors localhost liveserver
1个回答
0
投票

您似乎希望在本地主机和实时服务器之间维护相同的 API URL 结构,而不管服务器的实际域是什么。为此,您可以使用相对 URL 进行 API 调用。相对 URL 允许您指定相对于当前域的路径。

例如,如果您的 API 端点位于“/api/theresoftheapi”,您可以在本地主机和实时服务器代码中使用此相对 URL。这样,URL 的域部分将由环境决定,而 URL 结构的其余部分将保持不变。

以下是使用 JavaScript 通过相对 URL 进行 API 调用的示例:

// Assuming you are using fetch for making API calls
fetch('/api/therestoftheapi')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

在这个例子中,URL是相对的,它将根据当前域进行解析。这种方法允许您在本地主机和实时服务器环境中保持相同的 URL 结构。

如果由于某种原因,您仍然需要使用绝对URL,但希望动态确定域名,则可以根据环境动态设置域名。例如:

const baseUrl = process.env.NODE_ENV === 'development' ? 'https://originaserver.com' : 'https://seversideurl.com';

fetch(baseUrl + '/api/therestoftheapi')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));

在此示例中,

process.env.NODE_ENV
用于确定代码是在开发中运行还是在生产中运行。根据您的环境检测机制调整此检查。

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