在javascript

时间:2018-05-16 22:57:15

标签: javascript

我已经阅读了这篇文章:How to read a local text file?但它在Chrome中没有用,如本评论中所述:This won't work in Chrome (possiblity other browsers) you will get "Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource."。另请注意,我使用的是相对路径,因为据说这可以在评论中使用。这是代码:

<script>
function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

readTextFile("file.txt")

</script>

这是错误:

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

我还试图遵循其他解决方案,例如使用fetch 我得到关于跨源请求的相同错误

在对该主题进行一些阅读之后,我得出结论,出于安全原因,未经许可,您无法读取本地文件。我想知道的是如何编写一些javascript,在尝试读取文件之前会要求这些权限。如果您可以提供一些工作代码(像我上面提供的整个html文件)作为您的首选答案的一部分。感谢

1 个答案:

答案 0 :(得分:2)

你熟悉Node.js吗?您很可能需要在服务器或localhost上运行文件才能使用跨源请求。