我尝试使用Axios发送HTTP请求,但收到404错误。原因是请求在URL的开头使用本地主机IP发送,为什么会发生这种情况?
JS:
function getWeather() {
axios.get('api.openweathermap.org/data/2.5/weather', {
params: {
lat: 30.18,
lon: 30.87,
appid: '57d9478bc08bc211f405f45b93b79272'
}
})
.then(function(response) {
console.log(response);
})
.catch(function(error) {
console.log(error);
})
};
getWeather();
错误:
http://127.0.0.1:5500/api.openweathermap.org/data/2.5/weather?lat=30.18&lon=30.87&appid=57d9478b#####################3b79272 404 (Not Found)
5条答案
按热度按时间cxfofazt1#
在Axios的URL参数中,您没有指定用于API请求的协议(可能是HTTP)。因此,Axios将其解释为相对URL路径,并添加本地服务器的路径,因为它需要完整的URL来发出请求。
您可以通过添加http://前缀来轻松修复它:
cwxwcias2#
你可以在请求之前配置axios的基本url
hjzp0vay3#
要完全控制axios的基本URL,您可以在创建
AxiosInstance
时指定baseURL
:eqfvzcg84#
我经历了同样的问题,我的“.env”文件就像
API_URL = 'https://--My-API_URL--'
在这里我面临着同样的问题,之后用双引号替换了env链接,我将其更改为API_URL = "https://--My-API_URL--"
,问题解决了。axios无法理解env-url中的http或https协议,因此base-url是concatinated。ruoxqz4g5#
我的“.env”文件遇到了同样的问题,使用“”替换“”是一个好主意。