Axios调用第三方天气API返回400错误,Postman可正常请求如何排查
问题根因
你提交的Axios请求URL缺失HTTPS协议前缀,无协议的URL会被Axios识别为相对路径,自动拼接你当前启动的Node服务地址后发起请求,实际请求地址与OpenWeatherMap的官方API地址不符,因此触发400错误。
修复方案
给目标URL补全https://协议前缀即可,修改后的参考代码如下:
app.get("/weatherquery/:zip", (req, res) => { axios({ // 补全HTTPS协议前缀,同时建议替换写死的zip参数为路由传参 url: `https://api.openweathermap.org/data/2.5/weather?zip=${req.params.zip}&appid=[CHANGE_FOR_YOUR_APPID]`, }) .then((result) => res.send(result.data)) // 直接返回接口数据,避免返回Axios封装的完整响应对象造成冗余 .catch((error) => { console.log(error); res.send(error.message); }); });
内容的提问来源于stack exchange,提问作者genus20
相关产品推荐
相关产品推荐

