有没有人知道如何使用JS从服务器端文件读取数据的教程?当我谷歌时,我似乎无法找到任何相关主题。我尝试使用,但似乎没有用。我只是想从文件中读取一些数据以显示在页面上。这甚至可能吗?
var CSVfile = new File("test.csv");
var result = CVSfile.open("r");
var test = result.readln();
答案 0 :(得分:9)
要实现这一点,您必须使用名为AJAX的方法从服务器检索文件。
我会研究诸如Mootools和jQuery之类的JavaScript库。它们使AJAX的使用非常简单。
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.6.0/mootools-core.min.js"></script>
<script type="text/javascript">
//This event is called when the DOM is fully loaded
window.addEvent("domready",function(){
//Creating a new AJAX request that will request 'test.csv' from the current directory
var csvRequest = new Request({
url:"test.csv",
onSuccess:function(response){
//The response text is available in the 'response' variable
//Set the value of the textarea with the id 'csvResponse' to the response
$("csvResponse").value = response;
}
}).send(); //Don't forget to send our request!
});
</script>
</head>
<body>
<textarea rows="5" cols="25" id="csvResponse"></textarea>
</body>
</html>
如果您将其上传到test.csv所在的目录并加载该页面,您应该会看到test.csv的内容出现在定义的textarea中。
答案 1 :(得分:7)
您需要使用AJAX。使用jQuery库,代码可以如下所示:
$.ajax({ url: "test.csv", success: function(file_content) { console.log(file_content); } });
或者如果您不想使用库,请使用原始XMLHTTPRequest对象(但我在不同的浏览器上有不同的名称
function xhr(){ var xmlHttp; try{ xmlHttp=new XMLHttpRequest(); } catch(e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { alert("Your browser does not support AJAX!"); return false; } } } return xmlHttp; } req = xhr(); req.open("GET", "test.cvs"); req.onreadystatechange = function() { console.log(req.responseText); }; req.send(null);
2017年更新有新的获取API,您可以像这样使用它:
fetch('test.csv').then(function(response) {
if (response.status !== 200) {
throw response.status;
}
return response.text();
}).then(function(file_content) {
console.log(file_content);
}).catch(function(status) {
console.log('Error ' + status);
});
the support is pretty good如果您需要支持不支持fetch API的浏览器,则可以使用github created
的polyfill