通过AJAX请求公开谷歌表格数据返回404错误 此前功能运行正常
问题根源
你使用的spreadsheets.google.com/feeds/是谷歌已正式下线的GData旧版API接口,这是功能突然失效的核心原因,和你本身的表格链接有效性、代码逻辑无关。
可用解决方案(无需申请密钥,适配公开表格场景)
推荐改用谷歌表格的公开可视化查询接口,无需额外申请API密钥,适配你的公开表格调用场景,操作步骤和修改后的代码如下:
前置检查
- 确认谷歌表格共享设置为「知道链接的任何人都可以查看」
- 进入表格的「文件」-「共享」-「发布到网络」,选择你要读取的工作表,发布类型选CSV,点击「发布」
修改后代码示例
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script> <script> // 替换你的表格ID和工作表名称,默认第一个工作表是Sheet1 const sheetId = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww'; const sheetName = 'Sheet1'; $.getJSON(`https://docs.google.com/spreadsheets/d/${sheetId}/gviz/tq?tqx=out:json&sheet=${sheetName}&callback=?`, function(res) { const rows = res.table.rows; // 索引对应表格列顺序,0是第一列,1是第二列,2是第三列 // 如果表格第一行是表头不需要读取,把循环初始值改为i=1即可 for (let i = 0; i < rows.length; i++) { const nome = rows[i].c[0].v; const ingredienti = rows[i].c[1].v; const prezzo = rows[i].c[2].v; document.getElementById('Vinorosato').innerHTML += (`<div class="Teglie menu-restaurant"><span class="clearfix"><a class="menu-title" style="padding-right: 50px;">${nome}</a><span class="menu-price">${prezzo}</span></span><span class="menu-subtitle" style="padding-right: 100px;">${ingredienti}</span></div>`); } }); </script>
内容的提问来源于stack exchange,提问作者Vitiello Andrea
相关产品推荐
相关产品推荐

