我需要从JS加载一个简单的.CSV文件(这不是问题),但是“脚本”需要是可移植的(我将把它用作比赛的屏幕),并且将插入分数数据在CSV中,JS将根据CSV更新它的数据。
但我的问题是:我需要在没有apache或服务器的情况下运行它,因为我不能让那些将使用它的人,将拥有apache和Internet ...它需要从文件夹打开(只是带有JS的HTML,以及与.CSV相同的文件夹中的文件
当我尝试从jQuery($.get(..., ..., "jsonp")
和$.get()
)访问文件时,Chrome会输出以下错误:
XMLHttpRequest cannot load file:PATHTOTHEFILE Origin null is not allowed by Access-Control-Allow-Origin.
这是因为浏览器阻止了它的内容(出于安全原因)。
如何处理这个问题,或者你知道一个更好的解决方案,保存一些简单的数据并从JS读取它而不会出现水星问题吗?
由于
答案 0 :(得分:1)
您需要将--allow-file-access-from-files添加到chrome启动命令行
制作一个BAT文件,让用户点击它来启动你的应用
%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe ^
--allow-file-access-from-files ^
http://bing.co.uk
换出http://为你的文件网址。
答案 1 :(得分:0)
您可以使用html5 FileReader。但是这样你就必须选择文件。
<!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>