【发布时间】:2022-01-13 18:33:37
【问题描述】:
所以,我对 JQuery 和一般的 AJAX 还是很陌生。我制作了一个应用程序来从 Spotify 的 API 中检索数据,该 API 写入 song.txt (这部分工作得很好。它应该每秒更新一次。)并且 HTML 文件将提取 song.txt 的内容并更改id 为 'track' 的 div
<!DOCTYPE html>
<html>
<head>
<title>Camashima's Site</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
setInterval(function () {
$(document).ready(function () {
$('#track').load('../output/song.txt');
});
});
</script>
</head>
<body>
Currently Playing:
<div id="track">
.
</div>
</body>
</html>
JS 代码将 html 文件发布到服务器就好了,我看到了当前正在播放:但没有别的。所以这告诉我这不是问题。那么,我在这里做错了什么?它应该将 song.txt 加载到“track” div 中,对吧?
另外,我使用 Goorm-ide 来托管我的容器,并且控制台不像 chrome 的开发工具那样深入。 预期:“track” div 将替换为 song.txt 内容
结果:没有任何反应。
【问题讨论】:
-
你能补充一些关于 song.txt 的信息吗?你试过 console.log song.txt 吗?
-
使用谷歌浏览器并转到控制台并报告任何错误。检查开发工具中的“网络”选项卡,查看是否对文本文件发出请求。如果是,它会加载还是有错误?您的页面和文本文件的网址是什么?这看起来像是在“/”中的主页,并且您在 url 中使用“..”来访问文件。我的猜测是该文件没有被提供。
-
@NicklasF song.txt 实际上只是 fs.writeFileSync('./output/song.txt', text) 的输出。冻结 server.js 后,song.txt 包含以下内容:2:47 / 2:52 - Falling (feat. blackbear) - blackbear Remix by Trevor Daniel
-
@JasonGoemaat 我无法调试它,由于某种原因,这台笔记本电脑上禁用了 chrome 开发人员工具,因此我使用 goorm。这是提供的 html 的链接。 camashimas-current-track.run-eu-central1.goorm.io
-
看起来您的 html 位于所服务的根文件夹中。问题是 song.txt 不在提供的目录中。 load() 调用发生在客户端上,并且 url 需要解析为也可以由同一服务器提供服务的内容。您的浏览器无法使用 '..' 转到父目录,因为没有提供任何服务。如果您的网址类似于“example.com/mypage/index.html”,那么它会尝试获取“example.com/output/song.txt”。由于没有路径元素可以上去,所以没有办法获取 url。
标签: javascript html jquery ajax