gpt4 book ai didi

javascript - Javascript 中带有 fetch 的相对路径

转载 作者:行者123 更新时间:2023-12-03 02:48:30 25 4
gpt4 key购买 nike

今天,我对 JavaScript 中相对路径的体验感到惊讶。我将情况归结为以下几点:

假设您的目录结构如下:

app/
|
+--app.html
+--js/
|
+--app.js
+--data.json

我的app.html所做的就是运行js/app.js

<!DOCTYPE html>
<title>app.html</title>
<body>
<script src=js/app.js></script>
</body>

app.js 加载 JSON 文件并将其粘贴在 body 的开头:

// js/app.js
fetch('js/data.json') // <-- this path surprises me
.then(response => response.json())
.then(data => app.data = data)

数据是有效的 JSON,只是一个字符串:

"Hello World"

这是 fetch 的极少使用,但令我惊讶的是,我传递给 fetch 的 URL 必须与 app.html 而不是相对于 app.js。我希望这条路径能够工作,因为 data.jsonapp.js 位于同一目录中 (js/):

fetch('data.json') // nope

有没有解释为什么会出现这种情况?

最佳答案

当您说fetch('data.json')时,您实际上是在请求http://yourdomain.com/data.json,因为它是相对于页面的您正在提出请求。您应该以正斜杠开头,这将表明该路径是相对于域根的:fetch('/js/data.json')。或者完全符合您的域名fetch('http://yourdomain.com/js/data.json')

关于javascript - Javascript 中带有 fetch 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com