javascript - 我们如何在控制台中记录通过/失败的 url 检查结果?
问题描述
我正在从 HTML 页面中获取所有 url 链接并调用一个函数来为所有 url 链接发送 XHR 请求。我想以适当的方式控制那些通过和失败的请求链接的日志。我在某种程度上得到了结果,但对控制台日志/错误的方式不满意。有人可以告诉我需要在哪里更正控制台日志吗?
<div id="WebLinks">
<h2>All Links</h2>
<a href="https://jsfiddle.net/">Link 1</a><br>
<a href="https://stackoverflow.com/">Link 2</a><br>
<a href="https://tellus.com">Link 3</a><br>
<a href="https://loudop.com">Link 4</a><br>
<a href="https://www.youtube.com">Link 5</a><br><br>
<input type="button" id="linkChecker" onclick="linkCheck();" value="linkChecker">
</div>
// 如何改进控制台日志以显示通过和失败的日志。还删除了一些控制台错误;
var linkCheck = function() {
var arr = [],
l = document.links;
for (var i = 0; i < l.length; i++) {
arr.push(l[i].href);
console.log(arr[i]);
urlCheck(arr[i]);
}
function urlCheck(arr, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (callback) {
callback(xhr.status < 400);
}
}
};
xhr.open('HEAD', arr);
xhr.send();
}
urlCheck(arr, function(exists) {
console.log('"%s" exists?', arr, exists);
});
}
解决方案
您可以使用fetch
API 使用mode: "no-cors"
以下选项:
window.linkCheck = function() {
function urlCheck(link) {
fetch(link, {mode: "no-cors"}).then(
() => console.log(`${link} is valid`),
() => console.log(`${link} is invalid`)
);
}
var arr = [],
l = document.links;
for (var i = 0; i < l.length; i++) {
arr.push(l[i].href);
urlCheck(arr[i]);
}
};
<div id="WebLinks">
<h2>All Links</h2>
<a href="https://jsfiddle.net/">Link 1</a><br>
<a href="https://stackoverflow.com/">Link 2</a><br>
<a href="https://tellus.com">Link 3</a><br>
<a href="https://loudop.com">Link 4</a><br>
<a href="https://www.youtube.com">Link 5</a><br><br>
<input type="button" id="linkChecker" onclick="linkCheck();" value="linkChecker">
</div>
推荐阅读
- asp.net-web-api - ASP.Net Core 的配置
- apache-spark - RDD滑动错误不理解
- html - 编辑 HTML/CSS 主题,但似乎无法正确编辑
- design-patterns - 了解外观模式
- python - 如何捕获 subprocess.call 的输出
- javascript - Javascript向左或向右双向移动
- r - 如何在不删除相关行的情况下删除特定列中的重复值
- ms-access - 我的表没有更新长文本字段中的第二个条目
- java - NullPointerException - 尝试从 Web 服务返回 JSON
- soundfont - 如何将 SFZ 合成器格式转换为(soundfont)SF2?