HTML怎么显示速率限制重置时间_HTML X-RateLimit-Reset解析【说明】

需后端在Access-Control-Expose-Headers中暴露X-RateLimit-Reset,前端用Date.parse(response.headers.get('Date'))获取服务端当前时间,再与X-RateLimit-Reset(秒级时间戳×1000)做差计算剩余秒数,避免客户端时钟偏差。怎么把 X-RateLimit-Reset 转成可读时间显示在网页上浏览器拿不到原始响应头里的 X-RateLimit-Reset,除非后端显式允许跨域暴露------这是最常卡住的第一步。实际做法是后端在 Access-Control-Expose-Headers 响应头里加上 X-RateLimit-Reset,否则 JavaScript 的 response.headers.get('X-RateLimit-Reset') 拿到的是 null。前端用 fetch 发请求后,必须检查是否真能读到该 header(不是所有环境都默认放行)X-RateLimit-Reset 值是 Unix 时间戳(秒级),不是毫秒,别直接塞进 new Date() 里转成本地时间时,用 new Date(timestamp * 1000) 才对;错写成 new Date(timestamp) 会得到 1970 年的错误时间为什么 new Date().getTime() - resetTime * 1000 算出来是负数因为 X-RateLimit-Reset 是服务端时间戳,而你本地时间可能快或慢几秒------尤其在用户设备时间不准、或服务端用 NTP 校准过的情况下,差值就不可靠。更稳的做法是:用服务端返回的 Date 响应头(比如 Wed, 01 May 2024 12:34:56 GMT)算出服务端当前时间,再和 X-RateLimit-Reset 做差。这样消除了客户端时钟偏差的影响。立即学习"前端免费学习笔记(深入)";先取 response.headers.get('Date'),用 new Date(dateHeader).getTime() 得到服务端当前毫秒时间再取 reset = parseInt(response.headers.get('X-RateLimit-Reset')) * 1000倒计时剩余秒数 = Math.max(0, Math.round((reset - serverNow) / 1000))X-RateLimit-Reset 在不同 API 中的单位和格式差异绝大多数 REST API(如 GitHub、GitLab、Cloudflare)用的是秒级 Unix 时间戳,但个别内部系统可能返回毫秒,或者干脆是相对秒数(如 300 表示 5 分钟后重置)。不能无脑假设。 幻导航网 发现优质实用网站,开启网络探索之旅!

相关推荐
weelinking2 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
稳联技术老娜2 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
这个DBA有点耶2 小时前
云上运维新挑战:当数据库不再“看得见摸得着”
数据库·sql·程序人生·云原生·运维开发·学习方法·dba
程序大视界3 小时前
【Python系列课程】Python正则表达式(下):环视、命名分组与日志实战
开发语言·python·正则表达式
TickDB3 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
枫叶v.3 小时前
Agent 分层存储架构设计:从记忆方法到中间件选型
开发语言·python
水兵没月3 小时前
逆向实战小记——某ToB商城网站分析学习
python·网络爬虫
AskHarries3 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
程序员小远4 小时前
Python自动化测试框架及工具详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
消失在人海中4 小时前
oracle 数据库多表关联查询
服务器·数据库·oracle