Javascript 有没有办法在Chrome中检测HTTP服务器是否有响应?

Javascript 有没有办法在Chrome中检测HTTP服务器是否有响应?,javascript,google-chrome,cors,Javascript,Google Chrome,Cors,我有一个脚本,它将一个特定的地址加载到一个子窗口中,并对其进行处理。如果我无法访问加载的文档,我想知道浏览器是因为网络或服务器关闭而加载了Chrome错误页面,还是因为我没有禁用实际窗口的安全性和站点隔离而出错。我得到了相同的DOMException{stack:'错误:用原点阻止了一个帧“…”在这两种情况下,我都考虑过使用navigator.onLine和/或使用XHR作为可能的解决方案,但我不确定这是否可行。如果没有必要,我不想试验几天。有人解决了这个问题吗 结论: 我最终使用了一个带有异步

我有一个脚本,它将一个特定的地址加载到一个子窗口中,并对其进行处理。如果我无法访问加载的文档,我想知道浏览器是因为网络或服务器关闭而加载了Chrome错误页面,还是因为我没有禁用实际窗口的安全性和站点隔离而出错。我得到了相同的
DOMException{stack:'错误:用原点阻止了一个帧“…”在这两种情况下,我都考虑过使用
navigator.onLine
和/或使用XHR作为可能的解决方案,但我不确定这是否可行。如果没有必要,我不想试验几天。有人解决了这个问题吗

结论:

我最终使用了一个带有异步函数的已接受答案的修改版本:

异步函数isAlive(url){ 试一试{ 等待获取(url,{mode:'no cors'}); 返回true; }捕获(错误){ 返回false; } } (异步函数main(){ 常量地址=[ 'https://google.com', 'https://reallyf4kewebsite.com', '/', 'https://google.com/foo/bar/baz' ]; const results=wait Promise.all(addresses.map((address)=>isAlive(address)); address.forEach((address,index)=>console.log(address,results[index]);
})();
您可以通过对服务器执行无cors请求来知道它是否处于活动状态

但是您将无法获得更多的信息,即错误重定向(404、501等)将被视为活动的

这是因为,虽然这种模式允许我们发送请求,就好像没有CORS限制一样,但您将得到的响应实际上是不透明的,我们的脚本将无法访问“映射到某个响应的URL”以外的任何其他信息

函数isAlive(url){
返回获取(url,{mode:'no cors'})
.然后(r=>true)
.catch(r=>false);
}
伊莎莉https://google.com')
.然后(r=>console.log('google',r));
伊莎莉https://reallyf4kewebsite.com')
.then(r=>console.log('reallyf4kewebsite',r));
isAlive(“/”)
.then(r=>console.log('stacksnippets',r));
伊莎莉https://google.com/foo/bar/baz')
。然后(r=>console.log('404重定向',r));