即使文件不存在,Javascript检查文件是否存在结果为true

时间:2018-03-14 17:58:52

标签: javascript ajax

我正在尝试创建一个布尔函数,如果文件在那里则返回true,并且startInterval将输出到我的文本框,否则返回false(如果不存在)。我在这里查了一个例子:example

这是我的布尔函数:

function isGatewayProcessing(callback){
$.ajax({
    url: fileToCheck,
    type:'HEAD',
    cache: 'no-cache',
    error: function()
    {
        //file not exists
        console.log("File is not there!");
        return callback(false);
    },
    success: function()
    {
        //file exists
        console.log("File is there! Continue to output status..." + fileToCheck);
        return callback(true);
    }
});
}

function myCallback(exist) {
    if(exist) {
     console.log("The file is there, starting interval...");
     startInterval();
} else {
     console.log("The file is NOT there, reseting interval...");
     resetInterval();
}
}

isGatewayProcessing(myCallback);

一切正常,除非有时当我重新加载页面时,即使文件不在那里(console.log在页面重新加载时显示fileToCheck = undefined)它将解析为true并启动间隔,这将输出我的整个html页面到状态框。最初,我认为这是因为我将cache选项设置为true,所以我将其更改为false,但仍然没有运气。

如果文件不存在,有没有人知道为什么函数可能会解析为真?

或者,我可以在这个if语句中添加一个解决方法,它会起作用,但我仍然想知道为什么当文件不存在时它会解析为true。

if(exist && fileToCheck) { //add fileToCheck here 
     console.log("The file is there, starting interval...");
     startInterval();
}

0 个答案:

没有答案