位置检查总是超时: no-cors fetch 在 restcountries.com 重定向时卡死
作者: miczki创建于 2026年9月16日更新于 2026年9月16日
□ 总结
地点 ' 检查从未完成自办2.2.5例(Docker图像ghcr.io/lisy93/web-check:2.2.5',节点22.23)。 每个请求都以中间软件超时结束:
60 000毫秒后请求超时□因缘.
api/location.js'用mode:'no-cors'取出:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? Const get Json = async (url, signal) {{{{{{} const r = 等待获取(url, { 模式:'no- cors', signal });
`https://restcountry.com/v3.1.alpha/<code>`' 现在回答`301 永久地`,在另一个来源上加上`Location'(`files-03.restcountry.com')。 在节点取来(undici)中,满足这种跨源重定向的“无干线”请求从未解决,也没有遵守中止信号。 `enrich Constitution ()' 也没有传递信号,因此操作者等待中间软件超时。 地质提供者自己在一秒钟之内就回答了问题。 同样的 " master " 代码受到影响(`api/location.js',3ba5e58b中最后一次更改)。
□复制(2.2.5容器内,节点22)
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
cerst u = 'https://restcountry.com/v3.1.alpha/PL?fields=tld,语言,currenics,地区,人口'; 3.
等待抓取( u, { 信号: 中止Signal.timeout( 1500) }); // 200 in ~0. 2 s
等待抓取( u, { 模式 : “ no- cors ” , 信号 : 中止Signal.timeout( 1500) ) ); // 从未和解, 已忽略□ 建议修正
从“getJson”中丢出“mode”:“no-cors” 它没有CORS的意思 服务器侧, 所有四个地理供应商返回 200没有它的测试。 可选地还约束了浓缩请求:
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
- Const r = 等待取回(url,{模式:'no-cors', signal });
- const r = 等待接取(url,{ signal});
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
https://restcountries.com/v3.1.alpha/${code}` +
'?地=地,语言,曲线,面积,人口',
+ 中止Signal.timeout(TIMEOUT),
(三)这两种变化都使处理器返回了完整的地理数据,加上大约0.4秒的国家浓缩。 30秒后仍被吊死.
内容来源: lissy93/web-check