当我尝试从 google 电子表格中获取数据时出现 404 错误
404 ERROR when I try to GET data from google spreadsheet
大家好,不知道有没有人可以帮帮我。
不知道怎么可能,前几天还好好的,现在不行了。
基本上,我从网站上的 google spreadsheet public 和 public 中读取数据 html table 给每个人 link。使用 ajax.
直到现在它起作用了,我在 google 驱动器中看到了我的 sheet 上的所有数据和声音,现在它停止显示数据和 return 一个匿名错误,例如如果 link 到我的 google 传播 sheet 不存在,但它在这里!!
例如这个 googlesheet:https://docs.google.com/spreadsheets/d/13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww/edit?usp=sharing
我有一系列数据要显示在我的 html 网站上。几天前还可以,现在不行了
我用了 jquery google : src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
我public我的代码如下:
<script>
$.getJSON("https://spreadsheets.google.com/feeds/list/13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww/od6/public/values?alt=json", function (data) {
var sheetData = data.feed.entry;
var i;
for (i = 0; i < sheetData.length; i++) {
var nome = data.feed.entry[i]['gsx$_cn6ca']['$t'];
var ingredienti = data.feed.entry[i]['gsx$_cokwr']['$t'];
var prezzo = data.feed.entry[i]['gsx$_cpzh4']['$t'];
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>');
}
});
试试这个不需要 jQuery
的代码
<html><body>
<script>
function reqListener () {
var jsonString = this.responseText.match(/(?<="table":).*(?=}\);)/g)[0];
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
document.getElementById("Vinorosato").innerHTML = table;
}
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", url, true);
oReq.send();
</script>
<div id="Vinorosato"> </div></body></html>
并适应自己的风格
没有ajax和jQuery的另一个解决方案,使用fetch https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
<html><body>
<script>
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("Vinorosato").innerHTML=myItems(data.match(/(?<="table":).*(?=}\);)/g)[0])
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
return table
}
</script>
<div id="Vinorosato">List ...</div>
</body></html>
https://codepen.io/mikesteelson/pen/YzQKere
对于 iOS 兼容性,请改用
<html><body>
<script>
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("Vinorosato").innerHTML=myItems(data.substring(117).slice(0, -3))
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
return table
}
</script>
<div id="Vinorosato">List ...</div>
</body></html>
大家好,不知道有没有人可以帮帮我。
不知道怎么可能,前几天还好好的,现在不行了。 基本上,我从网站上的 google spreadsheet public 和 public 中读取数据 html table 给每个人 link。使用 ajax.
直到现在它起作用了,我在 google 驱动器中看到了我的 sheet 上的所有数据和声音,现在它停止显示数据和 return 一个匿名错误,例如如果 link 到我的 google 传播 sheet 不存在,但它在这里!!
例如这个 googlesheet:https://docs.google.com/spreadsheets/d/13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww/edit?usp=sharing
我有一系列数据要显示在我的 html 网站上。几天前还可以,现在不行了
我用了 jquery google : src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js">
我public我的代码如下:
<script>
$.getJSON("https://spreadsheets.google.com/feeds/list/13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww/od6/public/values?alt=json", function (data) {
var sheetData = data.feed.entry;
var i;
for (i = 0; i < sheetData.length; i++) {
var nome = data.feed.entry[i]['gsx$_cn6ca']['$t'];
var ingredienti = data.feed.entry[i]['gsx$_cokwr']['$t'];
var prezzo = data.feed.entry[i]['gsx$_cpzh4']['$t'];
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>');
}
});
试试这个不需要 jQuery
的代码<html><body>
<script>
function reqListener () {
var jsonString = this.responseText.match(/(?<="table":).*(?=}\);)/g)[0];
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
document.getElementById("Vinorosato").innerHTML = table;
}
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", url, true);
oReq.send();
</script>
<div id="Vinorosato"> </div></body></html>
并适应自己的风格
没有ajax和jQuery的另一个解决方案,使用fetch https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
<html><body>
<script>
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("Vinorosato").innerHTML=myItems(data.match(/(?<="table":).*(?=}\);)/g)[0])
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
return table
}
</script>
<div id="Vinorosato">List ...</div>
</body></html>
https://codepen.io/mikesteelson/pen/YzQKere 对于 iOS 兼容性,请改用
<html><body>
<script>
var id = '13KmAf2uc13fWxPvn8dtk9j9kOL3nCVqi8H-wYau6Tww';
var gid = '0';
var url = 'https://docs.google.com/spreadsheets/d/'+id+'/gviz/tq?tqx=out:json&tq&gid='+gid;
fetch(url)
.then(response => response.text())
.then(data => document.getElementById("Vinorosato").innerHTML=myItems(data.substring(117).slice(0, -3))
);
function myItems(jsonString){
var json = JSON.parse(jsonString);
var table = '<table>'
for (var i=0;i<json.rows.length;i++){
var nome = json.rows[i].c[0].v;
var ingredienti = json.rows[i].c[1].v;
var prezzo = json.rows[i].c[2].v;
table += '<tr><td>' + nome + '</td><td>' + ingredienti + '</td><td>' + prezzo + ' €</td></tr>'
}
table += '</table>'
return table
}
</script>
<div id="Vinorosato">List ...</div>
</body></html>