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

React项目调用Weatherstack API出现https_access_restricted错误的原因及解决求助

解决Weatherstack API在React中返回https_access_restricted的问题

嘿,我来帮你搞定这个问题!你遇到的https_access_restricted错误其实不是代码写错了,而是浏览器的安全策略在搞鬼,和Node.js环境的差异导致的:

问题到底出在哪?

  • 在Node.js里,你直接发HTTP请求,服务器不会篡改请求协议,所以API能正常响应;
  • 但在React的浏览器环境里,如果你的项目是用HTTPS运行的(比如本地开发默认的https://localhost:3000),浏览器会自动把你的HTTP请求升级成HTTPS请求——而你的Weatherstack订阅套餐不支持HTTPS加密访问,这不就触发错误了嘛!

具体解决办法

1. 本地开发:让React用HTTP启动

这是最快的解决方式,把React开发服务器改成HTTP协议运行,避免浏览器升级请求:

  • 临时启动:直接在终端跑这个命令
    HTTPS=false npm start
    
  • 永久生效:在项目根目录新建一个.env文件,写入这行内容:
    HTTPS=false
    

之后你的React应用会在http://localhost:3000运行,发出去的HTTP请求不会被篡改,就能正常拿到Weatherstack的数据了。

2. 生产环境部署(如果是HTTPS网站)

要是你的React应用已经部署到了HTTPS的线上环境,浏览器的混合内容规则会禁止页面加载HTTP资源,这时候只能二选一:

  • 升级你的Weatherstack订阅套餐,解锁HTTPS访问权限;
  • 换一个支持HTTPS访问的免费气象API(不想花钱的话)。

最后再确认下

你代码里的请求URLhttp://api.weatherstack.com/current是对的,千万别改成HTTPS!API密钥和查询参数也没问题——核心问题就是浏览器偷偷把HTTP请求转成了HTTPS,刚好你的套餐不支持而已。

内容的提问来源于stack exchange,提问作者Jero Gallego

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:12:45