Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用XMLHttpRequest获取服务器中存在的文件_Javascript - Fatal编程技术网

Javascript 使用XMLHttpRequest获取服务器中存在的文件

Javascript 使用XMLHttpRequest获取服务器中存在的文件,javascript,Javascript,我有这段代码来检查服务器中是否有具有给定URL的文件。如果存在文件,则返回true;如果存在其他文件,则返回false 问题是,如果没有文件,在chrome的控制台中,我可以看到404错误,这是我预期的,因为给定的URL不存在,但是: 我想知道这个错误是否会影响整个代码的执行和代码质量 如果有解决方案,如何消除错误 //检查服务器中是否存在文件 函数fileExist(url){ 返回新承诺((解析)=>{ const xhr=new XMLHttpRequest(); xhr.open(

我有这段代码来检查服务器中是否有具有给定URL的文件。如果存在文件,则返回true;如果存在其他文件,则返回false

问题是,如果没有文件,在chrome的控制台中,我可以看到404错误,这是我预期的,因为给定的URL不存在,但是:


  • 我想知道这个错误是否会影响整个代码的执行和代码质量

  • 如果有解决方案,如何消除错误

//检查服务器中是否存在文件
函数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配置,不同的浏览器可能会有不同的行为。所以我会留着它们。