我尝试从服务器读取本地文件。我已经“谷歌”这个话题有一段时间了,有些人说这是不可能的,有些人说这是可以做到的。在搜索过程中我发现了这个脚本:
使用 xmlhttprequest 读取文件
如果您的 javascript 应用程序的 HTML 文件已保存到磁盘,
这是读取数据文件的简单方法。写出来就是
更复杂并且需要 ActiveX 对象 (IE)
或 XPCOM (Mozilla)。
fname - 文件的相对路径
回调 - 使用文件文本调用的函数
function readFileHttp(fname, callback) {
xmlhttp = getXmlHttp();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4) {
callback(xmlhttp.responseText);
}
}
xmlhttp.open("GET", fname, true);
xmlhttp.send(null);
}
返回跨浏览器的 xmlhttprequest 对象
function getXmlHttp() {
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp == null) {
alert("Your browser does not support XMLHTTP.");
}
return xmlhttp;
}
但我不知道如何使用它,以及回调函数应该是什么样子?您能提供使用这些函数的示例代码吗?
能够从浏览器读取本地文件将是对安全的重大破坏 - 我不喜欢我访问的任何网站能够在浏览器中运行从硬盘驱动器读取文件的代码。通常,ajax 请求仅限于页面源自的域。 (但是,您可以使用 JSONP 等技术在一定程度上解决这个问题。)大多数浏览器不会让您读取本地文件,即使页面源自本地文件系统。
提到的其他方法应该允许您从域(即使是本地主机)读取文件,但不能直接从文件系统读取文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)