繁体   English   中英

JS:如何检查JS或AJAX中是否存在文件?

[英]JS: how to check if file exists in JS or AJAX?

我想检查本地文件是否存在,如果不存在,我要运行警报(“文件不存在!”)。 我尝试过这样的事情:

 function isOnline() { var xmlPath = "/test/test/myfile.xml" var request=new XMLHttpRequest(); request.open("GET",xmlPath,false); request.send(); if (request.readyState === 4){ return true; }else{ alert('File Away!'); return false; } } 

但这不起作用。 我不能使用PHP或jquery。

如果您尝试从服务器获取资源,则意味着该文件应该可以通过URL公开访问。

当使用带有request.send()XMLHttpRequest对象启动该请求时,该调用是异步的,因此立即检查readyStatestatus不会确保您结束调用。

function isOnline() {
    var xmlPath = "/test/test/myfile.xml"
    var request=new XMLHttpRequest(); 

    request.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
              alert("File was found on URL");
       }else if (this.readyState == 4 && this.status == 404 ) {
              alert("File away!");
       }
   };
    request.open("GET",xmlPath,false);
    request.send();
}

您应该订阅状态更改事件并检查该更改的值。 因此,除了检查readyState==4以使更改在事务结束之前,您还应该检查状态码。 例如200表示一切正常,或404表示找不到资源。

在此处检查该代码的规范: https : //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM