js中如何判断https与http开头的网址是否可以访问
时间: 2024-04-05 16:35:40 浏览: 46
判断一个网址是否可以访问,可以使用JavaScript中的`fetch` API或`XMLHttpRequest`对象。以下是使用这两种方式判断网址是否可访问的示例代码:
使用fetch API:
```javascript
function checkUrl(url) {
return fetch(url, {method: 'HEAD'})
.then(response => {
if (response.ok) {
return true; // 网址可以访问
} else {
return false; // 网址无法访问
}
})
.catch(() => {
return false; // 网址无法访问
});
}
// 调用 checkUrl 函数
checkUrl('https://www.example.com')
.then(result => {
console.log(result); // true
});
checkUrl('http://www.example.com')
.then(result => {
console.log(result); // true
});
```
在上述代码中,`checkUrl`函数接收一个网址作为参数,并使用`fetch`函数发起一个HEAD请求。如果请求成功(状态码为200-299),则返回`true`,否则返回`false`。如果请求失败,则也返回`false`。最后,调用`checkUrl`函数并在Promise回调中处理结果。
使用XMLHttpRequest对象:
```javascript
function checkUrl(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200 || xhr.status === 0) {
callback(true); // 网址可以访问
} else {
callback(false); // 网址无法访问
}
}
};
xhr.open('HEAD', url, true);
xhr.send();
}
// 调用 checkUrl 函数
checkUrl('https://www.example.com', function(result) {
console.log(result); // true
});
checkUrl('http://www.example.com', function(result) {
console.log(result); // true
});
```
在上述代码中,`checkUrl`函数与前面示例代码相同。该函数内部创建了一个XHR对象,并使用`xhr.open`方法打开一个HEAD请求。与前面的示例代码类似,如果请求成功,则调用回调函数并传递`true`;否则传递`false`。最后,调用`checkUrl`函数并在回调函数中处理结果。
阅读全文