Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以阻止浏览器访问文本文件,但仍允许JavaScript访问?_Javascript_File_Private - Fatal编程技术网

是否可以阻止浏览器访问文本文件,但仍允许JavaScript访问?

是否可以阻止浏览器访问文本文件,但仍允许JavaScript访问?,javascript,file,private,Javascript,File,Private,以下代码位于HTML文件内部,将local.txt文件的内容读入Javascript字符串变量: <script> window.onload=function(){ var allText; readTextFile("/files/Textfile.txt"); function readTextFile(file) // https://stackoverflow.com/a/14446538/8840617 {

以下代码位于HTML文件内部,将local.txt文件的内容读入Javascript字符串变量:

<script>
    window.onload=function(){
    var allText;
    readTextFile("/files/Textfile.txt");

    function readTextFile(file)
    // https://stackoverflow.com/a/14446538/8840617
    {
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function ()
        {
            if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
                {
                    allText = rawFile.responseText;
                }
            }
        }
        rawFile.send(null);
    }
}
</script>

window.onload=function(){
var-allText;
readTextFile(“/files/Textfile.txt”);
函数readTextFile(文件)
// https://stackoverflow.com/a/14446538/8840617
{
var rawFile=new XMLHttpRequest();
打开(“获取”,文件,错误);
rawFile.onreadystatechange=函数()
{
if(rawFile.readyState==4)
{
if(rawFile.status==200 | | rawFile.status==0)
{
allText=rawFile.responseText;
}
}
}
rawFile.send(空);
}
}
JavaScript代码继续解析该文本,从
allText
中提取特定的子字符串,然后最终在HTML中向用户显示该子字符串

问题是,任何访问者都可以通过单击浏览器中的“查看源”找到文本文件的路径,然后在浏览器中导航到文本文件以查看完整的文件

我不希望任何人能够看到这个文本文件的完整内容

那么,是否可以阻止访问者查看.txt文件,同时仍然允许my.html网页以字符串形式从.txt文件导入数据


如果这是不可能的,我应该如何实现这一效果,确切地说?

不-这是对一个模型的尝试,而不是一个非常模糊的模型。您不能信任客户机或对其隐藏信息。如果脚本可以看到它,恶意或好奇的用户也可以看到它


解决方案是在您的服务器上公开某人应该能够看到的内容,而不是其他内容。如果内容是针对特定用户的私有内容,您需要在他们请求时设置某种登录和身份验证。

这是不可能的。如果您希望JavaScript获取整个文本,但不希望人们看到整个文本,那么这是不可能的。每个人都可以打开自己的开发工具,查看请求。你为什么要这么做?什么是上下文?简短回答,没有。但您可以向web服务器发送请求,该服务器将为您获取并返回文本。@FelippeDuarte您能否提供一个示例,说明如何“发送请求”?AJAX使用与在浏览器中打开URL相同的底层HTTP通信。“你不能只阻挡其中一个。”费利佩·杜阿尔特说,他已经在这么做了
XMLHttpRequest
向服务器发送请求。