Ajax请求捕获localhost上的错误,但不捕获服务器上的错误

时间:2017-02-21 20:07:16

标签: javascript ajax error-handling xmlhttprequest

我正在尝试编写一个javascript函数,尝试从服务器读取文本文件,直到找到一个不存在的文本文件。 在服务器上有文本文件编号为1到n(1.txt,2.txt,3.txt等),因此它应该读取所​​有文件(顺序或异步),直到它尝试读取" 4。 TXT"它会引发错误。

以下代码适用于我的本地计算机(没有服务器正在运行),但在远程服务器上失败,说“"没有这样的文件"错误未被捕获。

我试图理解为什么在这两种情况下错误的处理方式不同,如果我有什么办法可以让它适用于远程服务器,如果有任何其他方法我可以采取这个措施​​?

我的最小代码是:

var files=[];

function readTextFile(file)
{
    var request = new XMLHttpRequest();
    request.open("GET", file, false);
    request.onreadystatechange = function ()
    {
        if(request.readyState === 4)
        {
            if(request.status === 200)
            {
                var allText = request.responseText;
                files.push(allText);
            } else {
                throw "No such file";
            }
        }
    }
    request.send();
}

function readFiles(){
    try {
        var i =1;
        while (true) {
            readTextFile(i+".txt");
            i+=1;
        }
    }
    catch (e) {
        console.log("finished reading files")
    }
    console.log(files)
}

readFiles();

0 个答案:

没有答案