【问题标题】:My HTML + JavaScript code works on online editors, but not offline我的 HTML + JavaScript 代码适用于在线编辑器,但不能离线
【发布时间】:2019-06-08 05:34:57
【问题描述】:

我正在使用表格,将谷歌表格转换为 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>

提前致谢

【问题讨论】:

  • 使用browser console (dev tools)(点击F12)并阅读任何错误。另请参阅网络标签。请确认:脚本源和sheetsu.com API 源是否找到(例如 HTTP 200 响应)?如果没有,请求哪个实际 URL

标签: html json api google-apps-script google-sheets


【解决方案1】:

问题是这样的:

<script src="//script.sheetsu.com/"></script>

当您以“//”开头且没有协议 (http|https) 的资源/资产 URL 时,它与页面加载位置的协议相匹配。如果你是直接打开一个本地的html文件,那个协议就变成file://,所以请求的URL最终是file://script.sheetsu.com/,当然不存在。

改成:

<script src="https://script.sheetsu.com/"></script>

【讨论】:

    【解决方案2】:

    我已经尝试过 Firefox,它确实有效。查看下图:

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 1970-01-01
      • 2012-11-11
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多