我想检查本地文件是否存在,如果不存在我想运行警报('文件不存在!')。 我试过这样的事情:
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。
答案 0 :(得分:0)
如果您尝试从服务器获取资源,则意味着该文件应该可以通过URL公开访问。
当您使用XMLHttpRequest
对象request.send()
启动该请求时,该调用是异步的,因此立即检查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