我正在通过在加载时使用ajax调用来读取csv文件我在mozilla中获得结果但是如果我在chrome中执行相同的链接我收到错误" XMLHttpRequest无法加载文件:/// home / scriplogix7 /下载/ CSV文本文件的上传/ data.csv。交叉源请求仅支持协议方案:http,数据,chrome扩展,https,chrome-extension-resource。"那我怎么能在chrome中处理这个错误。
我的代码是。
$(document).ready(function() {
// AJAX in the data file
$.ajax({
type: "GET",
url: "data.csv",
dataType: "text",
success: function(data) {
processData(data);
}
});
// Let's process the data from the data file
function processData(data) {
var table = $("<table />");
var rows = data.split(/\r\n|\n/);
for (var i = 1; i < rows.length - 1; i++) {
var row = $("<tr />");
var cells = rows[i].split(",");
for (var j = 0; j < rows.length; j++) {
var cell = $("<td />");
cell.html(cells[j]);
row.append(cell);
}
var usedNames = {};
$("select[name='company1'] > option").each(function() {
if (usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
$("select[name='company2'] > option").each(function() {
if (usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
$("select[name='company3'] > option").each(function() {
if (usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
$("#region").append("<option value =1> " + cells[0] + " </option>");
$("#state").append("<option value =1> " + cells[1] + "</option>");
$("#accname").append("<option value =1>" + cells[2] + "</option>");
table.append(row);
}
}
});
答案 0 :(得分:0)
添加了解决方案
$("#filename").change(function(e) {
var fileName = $("input#filename").val().split(".").pop().toLowerCase();
if($.inArray(fileName, ["csv"]) == -1) {
alert('Not a csv file, please try to upload a csv file.');
return false;
}
if (e.target.files != undefined) {
var filereader = new FileReader();
filereader.onload = function(e) {
var csvSplitter=e.target.result.split("\n"); //add your separator
var csvVal=csvSplitter[0].split(",");
var data="";
for(var i=0;i<csvVal.length;i++)
{
var temp=csvVal[i];
data=data+" "+temp;
}
$("#div").html(data);
};
filereader.readAsText(e.target.files.item(0));
}
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="filename" id="filename">
<div id="div"></div>