📜  XMLHttpRequest() 检查文件是否存在 - Javascript (1)

📅  最后修改于: 2023-12-03 15:35:47.375000             🧑  作者: Mango

XMLHttpRequest() 检查文件是否存在 - Javascript

在Web开发中,经常需要检查远程文件是否存在。其中一个常见的方法是使用JavaScript中的XMLHttpRequest()对象。这个对象可以向服务器发出HTTP请求,并接收响应。

创建XMLHttpRequest对象

要使用XMLHttpRequest(),需要创建一个XMLHttpRequest对象。代码如下:

var xhr = new XMLHttpRequest();
发送HTTP请求

使用XMLHttpRequest()对象发送HTTP请求的方式有几种不同的方法。这里介绍最常用的一种方式——使用“GET”方法。

function checkFileExists(url) {
    var xhr = new XMLHttpRequest();
    xhr.open('HEAD', url, false);
    xhr.send();
    if(xhr.status == "404") {
        return false;
    } else {
        return true;
    }
}

在这个函数中,我们使用了XMLHttpRequest()对象的HEAD方法,它可以向服务器发送一个请求,但不会返回响应内容,只会返回响应头信息。如果请求的资源不存在,服务器会返回HTTP状态码404。因此,我们可以检查HTTP状态码来确定文件是否存在。

实例

下面是一个完整的实例,演示如何检查一个远程文件是否存在。

function checkFileExists(url) {
    var xhr = new XMLHttpRequest();
    xhr.open('HEAD', url, false);
    xhr.send();
    if(xhr.status == "404") {
        return false;
    } else {
        return true;
    }
}

var fileUrl = "https://example.com/somefile.txt";
if(checkFileExists(fileUrl)) {
    console.log(fileUrl + " exists!");
} else {
    console.log(fileUrl + " does not exist!");
}
注意事项
  • 使用XMLHttpRequest()对象发送HTTP请求是一种阻塞的方式,这意味着脚本会一直等待服务器响应,直到服务器响应之后才会继续执行下一条语句。因此,如果需要检查多个文件是否存在,最好使用异步方式发送HTTP请求。
  • 由于浏览器的同源策略限制,XMLHttpRequest()对象只能够向与当前页面处于同一域名下的资源发送HTTP请求。如果需要检查远程文件是否存在,可以使用服务器端脚本来实现。