当我尝试将PING请求发送到被chrome标记为DANGEROUS的网站时,我的JS代码中出现了有趣的行为:
我尝试在网址URL reddit.com的输入字段中输入内容,我的js从开始检查所有组合:
1) r - (1) invalid url
2) re - (1) invalid url
3) red - (1) invalid url
4) redd - (1) invalid url
5) reddi - (1) invalid url
6) reddit - (1) invalid url
7) reddit. - (1) invalid url
8) reddit.c - (1) invalid url
9) reddit.co - (1) url valid, (2) check is url exists
10) reddit.com - this step can't be reached because big full-screen error from previous step
如何处理此行为,并让用户选择(如果他确实想要的话)。
创建PING的我的JS代码
export function fetch_with_timeout(url, options, timeout = 7000) {
return Promise.race([
fetch(url, options),
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout)),
]);
}
答案 0 :(得分:0)
因此,我看到的唯一解决方案是向实际执行ping并以Web资源可用性响应的服务器发出ping请求。
请求
{ "url": "reddit.co" }
回复
{ "url": "reddit.co", "available": true }