由于CORS策略,从google表获取数据停止工作



js从我的网站谷歌表获得数据,它完美地工作了2个月,但现在停止工作。我得到这个错误:

index.html:1访问XMLHttpRequest"https://spreadsheets.google.com/feeds/worksheets/1vX54pYMqq_U6QRTn86zsh9wf8uel9Oiku6NZ3bPPBTg/public/basic?alt=json"从原点'null'已被CORS策略阻止:否"访问-控制-允许-起源"标头出现在请求上资源。

我正在使用这个脚本:

<script src='https://cdnjs.cloudflare.com/ajax/libs/tabletop.js/1.5.1/tabletop.min.js'></script>
<script type='text/javascript'>    
var publicSpreadsheetUrl = 'https://docs.google.com/spreadsheets/d/1vX54pYMqq_U6QRTn86zsh9wf8uel9Oiku6NZ3bPPBTg/edit?usp=sharing';
function init() {
Tabletop.init( {
key: publicSpreadsheetUrl,
callback: showInfo,
simpleSheet: true 
} )
}
function showInfo(data, tabletop) {
alert('Successfully processed!')
console.log(data);
}
window.addEventListener('DOMContentLoaded', init)
</script>

我不太熟悉后端开发,所以这就是为什么我使用这个作为一个免费和简单的cms -我找了类似的问题,但我无法理解如何解决这个问题,因为我真的不知道如何使用api。我真的很感激任何帮助-谢谢!

好像要关机了。截止日期是2021年8月2日。需要迁移到Sheets v4 API。试试这个函数,你会从电子表格中得到一个json:

<html><body>
<script>
function reqListener () {
var jsonString = this.responseText.match(/(?<="table":).*(?=});)/g)[0];
var json = JSON.parse(jsonString);
document.getElementById("json").innerHTML = jsonString;
return json
}
var id = '1vX54pYMqq_U6QRTn86zsh9wf8uel9Oiku6NZ3bPPBTg';
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="json">&nbsp;</div></body></html>
  • 请注意,第一行专用于标签,然后行[0]对应于行#2,c[0]对应于列A
  • 如果您想检索B1(第2列第1行):json.cols[1].label
  • 如果您想检索B2(第2列第2行):json.rows[0].c[1].v

这是一个CORS策略问题,意味着您试图从http访问https url,反之亦然。

你可以解决这个问题,允许从iis或托管服务器。或直接改变你的域协议HTTP为HTTPS。

相关内容

  • 没有找到相关文章

最新更新