1. ホーム
  2. ジャバスクリプト

[解決済み] jQueryまたは純粋なJavaScriptでファイルが存在するかどうかを確認するにはどうすればよいですか?

2022-04-01 11:11:37

質問

jQueryまたはpure JavaScriptで、サーバー上のファイルが存在するかどうかを確認するにはどうすればよいですか?

どのように解決するのですか?

jQueryを使用します。

$.ajax({
    url:'http://www.example.com/somefile.ext',
    type:'HEAD',
    error: function()
    {
        //file not exists
    },
    success: function()
    {
        //file exists
    }
});

EDIT

以下は、jQueryを使わずに404ステータスをチェックするコードです。

function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

小さな変更で、代わりにHTTPステータスコード200(成功)をチェックすることができるようになりました。

EDIT 2: sync XMLHttpRequestは非推奨なので、このようなユーティリティメソッドを追加して非同期で行うことができます。

function executeIfFileExist(src, callback) {
    var xhr = new XMLHttpRequest()
    xhr.onreadystatechange = function() {
        if (this.readyState === this.DONE) {
            callback()
        }
    }
    xhr.open('HEAD', src)
}