You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于JavaScript文件的相对路径发起fetch请求?

解决脚本中fetch同目录JSON文件的路径问题

浏览器中fetch的请求路径是相对于当前页面(即index.html所在的根目录),而非脚本文件自身的位置,所以你直接写"data.json"会去根目录查找,自然找不到js文件夹里的目标文件。这里提供两种可行的解决方法:

  • 方法一:直接使用相对于页面的路径
    因为data.json和script.js都在js文件夹下,从根目录出发的完整相对路径是"js/data.json",修改代码如下:

    (async function() {
      var req = await fetch("js/data.json");
      var json = await req.json();
      // ... 后续逻辑
    })();
    
  • 方法二:动态获取脚本自身路径(更灵活)
    通过document.currentScript获取当前脚本的URL,再拼接同目录下的data.json路径,这种方式不受脚本引入位置的影响,适配性更强:

    (async function() {
      // 获取当前脚本的完整URL
      const scriptUrl = new URL(document.currentScript.src);
      // 拼接同目录下的data.json的绝对URL
      const dataUrl = new URL('data.json', scriptUrl).href;
      
      var req = await fetch(dataUrl);
      var json = await req.json();
      // ... 后续逻辑
    })();
    

内容的提问来源于stack exchange,提问作者noname

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:46:05