我如何检查我的服务器上的文件是否存在jQuery或纯JavaScript?


当前回答

首先创建函数

美元。UrlExists =函数(url) { var http = new XMLHttpRequest(); http。open('HEAD', url, false); http.send (); 还http.status ! = 404; }

使用函数后,如下所示

如果($.UrlExists(“urlimg”)){ 照片 = “IMG1.jpg”; }else{ 照片 = “IMG2.jpg”; } $(''<img>).attr('src',photo);

其他回答

这对我来说很管用:

function ImageExist(url) 
{
   var img = new Image();
   img.src = url;
   return img.height != 0;
}

如果你使用Babel transpiler或Typescript 2,下面是如何用ES7的方式来做:

async function isUrlFound(url) {
  try {
    const response = await fetch(url, {
      method: 'HEAD',
      cache: 'no-cache'
    });

    return response.status === 200;

  } catch(error) {
    // console.log(error);
    return false;
  }
}

然后在你的其他异步作用域中,你可以很容易地检查url是否存在:

const isValidUrl = await isUrlFound('http://www.example.com/somefile.ext');

console.log(isValidUrl); // true || false

我使用这个脚本添加替代图像

function imgError()
{
alert('The image could not be loaded.');
}

HTML:

<img src="image.gif" onerror="imgError()" />

http://wap.w3schools.com/jsref/event_onerror.asp

一种类似的和最新的方法。

$.get(url)
    .done(function() { 
        // exists code 
    }).fail(function() { 
        // not exists code
    })

您需要做的是向服务器发送一个请求,让它进行检查,然后将结果发回给您。

您试图与哪种类型的服务器通信?您可能需要编写一个小型服务来响应请求。