gpt4 book ai didi

javascript - 我们如何在控制台中记录通过/失败的 url 检查结果?

转载 作者:行者123 更新时间:2023-12-03 01:14:41 25 4
gpt4 key购买 nike

我正在从 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);
});

}

JS Fiddle

最佳答案

您可以使用 mode: "no-cors" 选项通过 fetch API 来实现此目的:

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>

关于javascript - 我们如何在控制台中记录通过/失败的 url 检查结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com