本地调用ip-api接口正常,部署后Axios出现网络错误求助
问题:Axios调用ip-api接口本地正常,上线后报网络错误
我需要通过Axios调用http://ip-api.com/json接口获取用户地理位置,用来在网站上做内容的条件渲染。这个功能在本地用npm start运行完全正常,但部署上线后就出现Axios网络错误,想知道问题出在哪。
相关代码:
const getGeoInfo = () => { axios .get("http://ip-api.com/json") .then((res) => { setRegion(res.data.regionName); if (res.data.country === "Canada" || res.data.country === "Pakistan") { setAcceptedCountries(true); } else setAcceptedCountries(false); }) .catch((err) => { console.log(err); }); };
可能的原因
- 混合内容拦截:上线后的网站大多用HTTPS协议,而你调用的接口是HTTP明文的,浏览器出于安全会直接拦截这种跨协议请求。本地环境用HTTP运行,所以不会触发这个限制。
- CORS规则冲突:虽然ip-api官方支持跨域请求,但你的部署平台(比如Netlify、Vercel)可能有额外的CORS配置,或者服务器防火墙拦截了跨域请求,导致接口调用失败。
- 请求频率超限:ip-api的免费版有请求次数限制(每分钟最多45次,每天最多1000次),如果网站上线后访问量上来,触发了限流机制,就会返回错误。
- 部署环境网络限制:有些服务器或托管平台会限制出站请求,可能把ip-api的域名加入了黑名单,导致无法发起请求。
- DNS解析失败:上线后的服务器或CDN可能无法正确解析
ip-api.com的域名,导致请求无法送达接口服务器。
内容的提问来源于stack exchange,提问作者Salman Abbas
相关产品推荐
相关产品推荐

