Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中引用本地文件?_Javascript_Ajax_Webstorm - Fatal编程技术网

如何在JavaScript中引用本地文件?

如何在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

我在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 (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相去甚远请检查他的问题。同意您的看法,但我们的答案都不适用于他:这意味着脚本是从根文档中包含的,而不是从根文档中包含的。