You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Axios GET请求调用CoWIN接口本地正常 部署Heroku返回403错误

问题原因

1. CoWIN API的IP地域访问限制

该API为印度政府疫苗预约服务的公开接口,官方明确限制仅印度境内IP可访问。你本地环境、Postman、浏览器可正常访问,说明你本地网络使用的是印度IP;而Heroku默认部署节点多位于欧美地区,不在印度IP段内,直接被接口的访问控制策略拦截返回403。

2. 自定义User-Agent未生效

从Heroku返回的错误日志可以看到,请求实际携带的User-Agent值为axios/0.21.1,和你代码中配置的浏览器UA完全不符,说明你的axios请求头配置没有正确传递,即使你本地测试没问题,也可能存在部署时代码未同步、axios版本配置兼容问题、配置结构写法错误的情况。

解决方案
  • 先修复UA传递问题:调整axios请求写法,避免配置结构错误导致头信息被覆盖,参考代码如下:
const express = require('express');
const axios = require('axios');
const router = express.Router();

router.get('/getStates', async (req, res) => {
  try {
    const response = await axios.get(
      'https://cdn-api.co-vin.in/api/v2/admin/location/states',
      {
        headers: {
          "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36"
        }
      }
    );
    res.json({data: response.data.states});
  } catch (error) {
    res.json({
      errorMessage: 'There has been an error in getting data. Please try after some time.',
      error: error 
    });
  }
})

module.exports = router;
  • 解决IP限制问题:
    • 创建Heroku应用时选择ap-south-1(孟买)区域,使用印度节点的IP发起请求
    • 自行搭建印度地区的代理服务,通过代理转发API请求
    • 申请CoWIN官方开发者授权,使用需要鉴权的非公开接口,规避IP限制
Stack Overflow提问优化建议
  • 可以补充你本地网络所属地区、Heroku应用部署的节点区域信息,帮助回答者快速定位地域限制问题
  • 可以提前指出错误日志中实际请求UA和代码配置UA不一致的特征,缩小排查范围
  • 可以补充你项目中使用的axios具体版本号

内容的提问来源于stack exchange,提问作者Sasi Kanth T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:09:03