Javascript 使用XMLHttpRequest获取服务器中存在的文件
我有这段代码来检查服务器中是否有具有给定URL的文件。如果存在文件,则返回true;如果存在其他文件,则返回false 问题是,如果没有文件,在chrome的控制台中,我可以看到404错误,这是我预期的,因为给定的URL不存在,但是:Javascript 使用XMLHttpRequest获取服务器中存在的文件,javascript,Javascript,我有这段代码来检查服务器中是否有具有给定URL的文件。如果存在文件,则返回true;如果存在其他文件,则返回false 问题是,如果没有文件,在chrome的控制台中,我可以看到404错误,这是我预期的,因为给定的URL不存在,但是: 我想知道这个错误是否会影响整个代码的执行和代码质量 如果有解决方案,如何消除错误 //检查服务器中是否存在文件 函数fileExist(url){ 返回新承诺((解析)=>{ const xhr=new XMLHttpRequest(); xhr.open(
- 我想知道这个错误是否会影响整个代码的执行和代码质量
- 如果有解决方案,如何消除错误
//检查服务器中是否存在文件
函数fileExist(url){
返回新承诺((解析)=>{
const xhr=new XMLHttpRequest();
xhr.open('HEAD',url,true);
xhr.onload=函数(){
返回解析(xhr.status==200)
};
xhr.onerror=函数(){
返回解析(xhr.status==200)
};
xhr.send();
});
}
我能看到的唯一问题是,函数将任何错误视为文件不存在。您应该在onerror
函数中专门检查xhr.status==404
。其他任何情况都可能是服务器故障、网络错误等,并应触发错误处理程序
更好的方法是使用服务器脚本检查文件是否存在。向该脚本发出AJAX请求,它可以返回一个简单的
true/false
响应。但这也会增加开销。好的。。。谢谢你的回答。。。加一。。。所以我可以忽略404错误?如果文件不在那里,404错误就是你所期望的。我不认为你可以通过JavaScript在Chrome控制台中隐藏网络错误。阅读本主题:“我想知道这个错误是否会影响整个代码的执行和代码质量”。一点也不。浏览器将错误记录到控制台是正常和方便的。但是,您可以在OneError处理程序中添加console.clear()
,以清除控制台中的错误,但这取决于DevTools配置,不同的浏览器可能会有不同的行为。所以我会留着它们。