我已经使用代理在本地主机中调用了外部 api,它工作正常,但是当我在实时服务器中调用它时,代理将更改为我给出的服务器 url + api
我希望实时服务器中的网址保持不变。它应该和本地主机中的一模一样
代理; https://originaserver.com api: api/theresoftheapi 在实时服务器中,网址如下:https://seversideurl.com/api/thererestoftheapi
您似乎希望在本地主机和实时服务器之间维护相同的 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
用于确定代码是在开发中运行还是在生产中运行。根据您的环境检测机制调整此检查。