[英]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
对象启动该请求时,该调用是异步的,因此立即检查readyState
或status
不会确保您结束调用。
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.