如何在JavaScript中引用本地文件?
我在WebStorm中工作,我正在尝试用JavaScript读取文本文件file.txt。我曾经尝试过使用Ajax、XMLHttpRequest和fetch来实现这一点,但它们都返回了404错误消息 这是我的目录层次结构: 注意:我引用的文件来自artikels.js,代码如下:如何在JavaScript中引用本地文件?,javascript,ajax,webstorm,Javascript,Ajax,Webstorm,我在WebStorm中工作,我正在尝试用JavaScript读取文本文件file.txt。我曾经尝试过使用Ajax、XMLHttpRequest和fetch来实现这一点,但它们都返回了404错误消息 这是我的目录层次结构: 注意:我引用的文件来自artikels.js,代码如下: const xhr = new XMLHttpRequest(); xhr.open('GET', 'data/file.txt', false); xhr.onload = function() { if (th
const xhr = new XMLHttpRequest();
xhr.open('GET', 'data/file.txt', false);
xhr.onload = function() {
if (this.status == 0) {
const resp = this.response;
console.log(resp);
} else {
console.log("fail");
}};
xhr.send();
我一直在尝试更改以下表单的链接:
assets/js/own/data/file.txt
/assets/js/own/data/file.txt
./data/file.txt
我应该如何编写链接以使其工作
已解决:
我犯的错误是,我从artikels.js文件开始构建file.txt的路径。。。在尝试Location.pathname方法后,感谢ibrahim tanyalcin的建议,我发现当前位置是HTML页面的位置,该页面具有指向artikels.js文件的“链接”,而不是artikels.js位置
举例说明:
XMLHttpRequest已知的唯一绝对URL是运行此脚本的文档的URL 因此,如果您想使用相对URL,它们应该是相对于文档的URL的 因此:
xhr.open('GET', 'assets/js/own/data/file.txt', false);
或者,如果资产文件夹始终位于站点的根目录,则可以使用根目录相对URL:
xhr.open('GET', '/assets/js/own/data/file.txt', false);
@不幸的是,它不起作用。也许pfcodes发布的链接会对我有所帮助。谢谢你控制台上的location.pathname是什么?@VicJordan Where?这个../assets/js/own/data/file.txt与这个assets/js/own/data/file.txt相去甚远请检查他的问题。同意您的看法,但我们的答案都不适用于他:这意味着脚本是从根文档中包含的,而不是从根文档中包含的。