在javascript中替换XMLHttpRequest

在javascript中替换XMLHttpRequest,javascript,ajax,web,browser,Javascript,Ajax,Web,Browser,我以前使用XMLHttpRequest读取本地文件 function getData(fileName) { var filePath = fileName; xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", filePath, false); xmlhttp.send(null); var fileContent = xmlhttp.responseText; var tempArr = csv2Arr(fileCo

我以前使用XMLHttpRequest读取本地文件

function getData(fileName)
{
  var filePath = fileName;
  xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", filePath, false);
  xmlhttp.send(null);
  var fileContent = xmlhttp.responseText;
  var tempArr = csv2Arr(fileContent);
  var returnLabelArr = tempArr[0].toString().split(',');    
  tempArr.shift();
  var returnDataArr = tempArr;
  return { 'dataArr' : returnDataArr, 'labelArr' : returnLabelArr };
}
文件名以“C://…”开头,我的程序在地址为“”的浏览器上运行file:///...“

但是,如果没有“--allowfileaccessfromfiles”标记,我的代码在Chrome上就无法工作。而且如果不改变一些安全选项,它在IE和Firefox上也不起作用。 所以,我尝试像这样jquery API

function getData(fileName)
{
var filePath = fileName;
var fileContent;

$.ajax({
    type: "GET",
    url: filePath
})
.done(function(data) {
    alert(data);
    fileContent = data;
});

var tempArr = csv2Arr(fileContent);
var returnLabelArr = tempArr[0].toString().split(',');  
tempArr.shift();
var returnDataArr = tempArr;
return { 'dataArr' : returnDataArr, 'labelArr' : returnLabelArr };
}
问题也出现了。我认为它阻止了它

谁能给我一些建议,让我在不改变安全选项的情况下访问本地文件?我应该使用一些插件来解决这个问题吗

请让我知道。 谢谢。

如果您可以使用
选择文件,那么解决方案是:

HTML:


JS:

var fileInput=document.querySelector('#file input');
fileInput.addEventListener('change',函数(事件){
var files=fileInput.files;
如果(files.lenght==0){
回来
}
对于(var i=0;i
此外,还可以通过查找来了解如何使用它,因为它有更多的方法来读取数据。

我无法使用。有没有其他方法可以解决这个问题?
<form action="">
     <input type="file" id="file-input" multiple="multiple" accept="image/jpeg" />
</form>
var fileInput = document.querySelector('#file-input');
fileInput.addEventListener('change', function(event) {
    var files = fileInput.files;
    if (files.lenght == 0) {
        return;
    }
    for(var i = 0; i < files.length; i++) {
        readFile(files[i]);
    }
    fileInput.value = "";
 }, false);

 var readFile= function(file) {
     var reader = new FileReader();
     reader.onload = function(e) {
         var dataUrl = e.target.result;

         // now, load the data into some element
         // if this is image, you can do this:
         var image = new Image();
         image.src = dataUrl;
         document.body.appendChild(image);
     };
     reader.readAsDataURL(file);
 };