我正在开发一个具有独立的后端和前端软件的web应用程序。它们都是在同一服务器的不同端口(分别为80和3000 )上提供服务的。
前端应用程序(用Vue.js开发)通过超文本传输协议请求与后端服务器通信。我正在使用axios库来发送这些请求。
问题是,这个web应用程序的实例(包括字体端和后端)将被部署在不同客户的几个不同的服务器上,似乎在每个实例中硬编码服务器地址都不是最好的解决方案。
如何在前端应用程序中配置axios,以便将HTTP请求发送到提供服务的同一地址?
例如,从example.com
提供服务的实例应该向http://example.com:3000
发送请求,而从example2.com
提供服务的实例应该向http://example2.com:3000
发送请求。
发布于 2017-10-31 02:48:13
您可以使用location.host
属性。Location
是一种用于处理url操作的API。它的host
属性包含网站的当前主机url。例如,如果您在stackoverflow中输入控制台location.host
,您将看到stackoverflow.com。您可以为每个已有的前端url编写一个映射,以映射到一个接口baseUrl,例如:
const mapping = {
'example.com': 'api.example.com',
'example2.com': 'api.example2.com'
};
function findApiUrl(){
return mapping[location.host];
}
const baseUrl = findApiUrl(); // pass it to axios
https://stackoverflow.com/questions/47022030
复制相似问题