html - 我的 HTML + JavaScript 代码适用于在线编辑器,但不能离线
问题描述
我正在使用表格,将谷歌表格转换为 JSON 文件,然后使用他们的 API 将 JSON 转换为 javascript 对象。
问题是代码在在线编辑器中工作得很好,就像 W3Schools 或 Codepen 的 Tryit 一样,但如果我将它放在 HTML 文件中并用 Chrome 或 Edge 打开它,它将无法工作。有谁知道为什么?如果我在线安装该站点,它会起作用吗?
<head>
<!-- Add Sheetsu Web Client script to the head -->
<script src="//script.sheetsu.com/"></script>
</head>
<body>
<div id="list"></div>
<script>
// API returns array of objects
// Iterate over them and add each element as a list element
function successFunc(data) {
data.forEach(function(item, i) {
document.getElementById("list").innerHTML += "<li>" + item.Precio + " " + item.Tipo + "</li>";
});
}
function errorFunc(e) {
console.log(e);
}
Sheetsu.read("https://sheetsu.com/apis/v1.0su/110ccf6a6812", {}).then(successFunc, errorFunc);
</script>
</body>
提前致谢
解决方案
问题是这样的:
<script src="//script.sheetsu.com/"></script>
当您以“//”开头且没有协议 (http|https) 的资源/资产 URL 时,它与页面加载位置的协议相匹配。如果您直接打开本地 html 文件,则该协议变为file://
,因此请求的 URL 最终为file://script.sheetsu.com/
,当然不存在。
将其更改为:
<script src="https://script.sheetsu.com/"></script>
推荐阅读
- sql - STUFF 不适用于 NULL 值和分组
- r - 如何使用 HydroGOF 包按组获得 Nash-Sutcliffe 效率?
- c# - EF6 - DbUpdateConcurrencyException:存储更新、插入或删除语句影响了意外的行数 (0)
- machine-learning - 使用 Hyperopt 进行 XGBoost 超参数调优
- android - Android Studio XML 无法勾勒出 imageview
- heroku - 尝试部署 heroku 应用程序时出现应用程序错误
- ansible - ansible用例理念
- javascript - React Native:为什么子组件可以访问父组件中 useEffect 内的变量?
- ubuntu - 无法在 GCP Ubuntu 实例上安装软件包
- spring - Spring Boot 依赖