Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 从运行localy的JS访问文件_Javascript_Jquery_Ajax_Http_Google Chrome - Fatal编程技术网

Javascript 从运行localy的JS访问文件

Javascript 从运行localy的JS访问文件,javascript,jquery,ajax,http,google-chrome,Javascript,Jquery,Ajax,Http,Google Chrome,我需要从JS加载一个简单的.CSV文件(这不是这里的问题),但“脚本”需要可移植(我将在比赛中使用它作为屏幕),分数数据将插入CSV,JS将根据CSV更新其数据 但我的问题是:我需要在没有apache或服务器的情况下运行它,因为我无法让舒尔成为使用它的人,拥有apache和互联网。。。它需要从一个文件夹中打开(只是一个带有JS的HTML,以及一个与.CSV位于同一文件夹中的文件) 当我尝试从jQuery($.get(…,…,“jsonp”)和$.get()访问文件时,Chrome会输出以下错误:

我需要从JS加载一个简单的.CSV文件(这不是这里的问题),但“脚本”需要可移植(我将在比赛中使用它作为屏幕),分数数据将插入CSV,JS将根据CSV更新其数据

但我的问题是:我需要在没有apache或服务器的情况下运行它,因为我无法让舒尔成为使用它的人,拥有apache和互联网。。。它需要从一个文件夹中打开(只是一个带有JS的HTML,以及一个与.CSV位于同一文件夹中的文件)

当我尝试从jQuery(
$.get(…,…,“jsonp”)
$.get()
访问文件时,Chrome会输出以下错误:

XMLHttpRequest无法加载文件:访问控制允许源文件不允许文件源文件的路径为null。

这是因为浏览器阻止了它的内容(出于安全原因)

我如何“处理”这个问题,或者你知道更好的解决方案吗?保存一些简单的数据并从JS中读取数据,而不会出现安全问题

谢谢

您需要在chrome启动命令行中添加--允许从文件访问文件

制作一个BAT文件,让你的用户点击它来启动你的应用程序

%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe ^
--allow-file-access-from-files ^
http://bing.co.uk

替换掉http://for your文件url。

您可以使用html5文件阅读器。但用这种方式,您必须选择文件

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<label for="files">Path to file: </label><input type="file" id="files" name="files[]"/>
<script>
function handleFileSelect(evt) {
        var files = evt.target.files;
        var f;
        for (var i = 0; f = files[i]; i++) {
            if (!f.type.match('text.*')) {
                continue;
            }
            var reader = new FileReader('test.html');
            reader.onloadend = (function () {
                return function(e) {
                  alert(e.target.result);
                };
            })();
            reader.readAsText(f);
        }
    }



    var fileSerf= document.getElementById('files');
    if (fileSerf){
        fileSerf.addEventListener('change', handleFileSelect, false);
    }
</script>
</body>
</html>

文件路径:
功能手柄文件选择(evt){
var files=evt.target.files;
var f;
对于(var i=0;f=files[i];i++){
如果(!f.type.match('text.*')){
继续;
}
var reader=newfilereader('test.html');
reader.onloadend=(函数(){
返回函数(e){
警报(如目标、结果);
};
})();
reader.readAsText(f);
}
}
var fileSerf=document.getElementById('files');
if(fileSerf){
fileSerf.addEventListener('change',handleFileSelect,false);
}

示例:

是否有其他方法可以做到这一点,任何“愚蠢”的人都可以使用?@Ivan看起来没有:——这个错误与一个尚未解决的更大的错误合并。但是,您可以创建一个Chrome的快捷方式,并在属性中向路径添加标志(比创建批处理脚本IMHO稍微容易一些)。它解决了,但不是“完美的”。。。这是一种“变通方法”^^^但无论如何都要感谢!=]BAT脚本是“可移植的”,快捷方式将需要路径手术…对谁来说更容易?