加载'服务器端'本地html文件中带有XMLHttpRequest的文件
Load a 'server-side' file with XMLHttpRequest in local html file
我想用javascript加载一个json字符串文件。javascript位于我从本地文件系统加载的html文件中。
我尝试了以下代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', fileName, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
alert("Yo");
}
};
但是onload事件只触发一次,状态为0,然后不再发生。
我尝试使用文件的完整路径和本地文件路径,如"/files/the_file.txt"。
这个问题似乎与我试图在本地运行html文件有关。我不想像我在类似的帖子中看到的那样设置本地服务器
有人能解决这个问题吗?
编辑:
这不是我想要的,但这可能是我几乎想要的一个例子。这个例子让用户选择一个文件,我的脚本现在可以访问所选文件的内容。
HTML:
<input type="file" id="FancyInputField" onchange="doIt();">
Javascript:
function doIt(){
var selectedFile = document.getElementById('FancyInputField').files[0];
reader = new FileReader();
reader.onload = function (e) {
var output = reader.result;
var daObject = JSON.parse(output);
}
reader.readAsText(selectedFile);
}
这也适用于本地html文件。(无本地服务器)
我的问题站得住脚;如何在没有用户交互的情况下读取文件?这些文件位于html文件所在的子文件夹中。我可以毫无问题地加载并显示来自同一子文件夹的图像,带有<img>
标签。。那么,为什么加载文本文件如此困难呢?
如何在没有用户交互的情况下读取文件?
你不能。这些文件属于用户,而不是您的网站。你不能选择阅读它们。
我可以毫无问题地加载并显示来自同一子文件夹的图像,带有
<img>
标签
向用户显示图像和让页面作者编写的JavaScript代码可以使用文件内容之间有很大的区别。
那么,为什么加载文本文件如此困难呢?
- 通过电子邮件向某人发送HTML文档
- 享受其中的JavaScript从硬盘中提取文件并将其发送到Joe Evil Hacker的服务器
这只是基本的安全措施。
使用URL.createObjectURL(file)
,而不是ajax。
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在php文件中获取$.post-ajax传递的值
- 直接下载文件,而不是从window.open(url)
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用压缩的JavaScript文件(不是运行时压缩)
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Javascript运行php文件,然后下载文件
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 我应该如何从xml文件构建一个javascript页面
- 通过Ajax将JavaScript函数传递给PHP文件