如何解决无法检查请求是否成功
我正在尝试创建一个JavaScript代码,该代码允许我检查是否可以通过URL向给定主机发送HTTP请求(检查服务器是否在运行)。这是我的代码:
<html>
<body>
<script>
function checkServer(url) {
const controller = new AbortController();
const signal = controller.signal;
const options = { mode: 'no-cors',signal };
return fetch(url,options)
.then(setTimeout(() => { controller.abort() },5))
.then(response => function()
{
var xhttp = new XMLHttpRequest();
xhttp.open("GET","http://log.mywebsite.com",true);
xhttp.send();
}
)
.catch(error => function()
{
var xhttp = new XMLHttpRequest();
xhttp.open("POST",true);
xhttp.send();
}
)
}
checkServer('https://blahdummydamnfck.com');
</script>
</body>
</html>
但是,尽管它无法将HTTP请求发送到服务器,但没有将日志请求发送到我的日志服务器。为什么这会发生在我身上?
解决方法
提取不会抛出。如果请求失败,它将返回错误代码,因此catch不是检测丢失的服务器的正确方法。改为选择response code
来自manual: fetch()方法采用一个强制性参数,即您要获取的资源的路径。它返回一个Promise,该请求将解析为对该请求的响应,无论请求是否成功。您还可以选择传入init选项对象作为第二个参数(请参见请求)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。