首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从被CORS策略阻塞的google驱动器上传应用程序脚本中的csv文件

从被CORS策略阻塞的google驱动器上传应用程序脚本中的csv文件
EN

Stack Overflow用户
提问于 2022-06-13 00:35:04
回答 1查看 197关注 0票数 1

我想从google表生成一个D3.js树。

在我接下来的示例中,树是用csv生成的。因此,我已经用应用程序脚本从google表在我的google驱动器上生成了一个csv文件,现在,我尝试像下面这样加载它:

代码语言:javascript
运行
复制
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/data_hierarchy_1level.csv', function(data) {console.log(data)})
</script>

这里工作得很好,但是当我尝试从google驱动器加载我自己的csv时,我使用了以下代码:

代码语言:javascript
运行
复制
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://drive.google.com/uc?id=1S9_KA87o_i7PjHILicXX21mlVeQc1jIA', function(data) {console.log(data)})
</script>

以下错误消息:

CORS策略阻止从源'i7PjHILicXX21mlVeQc1jIA‘访问i7PjHILicXX21mlVeQc1jIA 'https://n-mvggraccraz7qqhyhidnzi7cecuqlcodyfxsjjq-0lu-script.googleusercontent.com’:请求的资源上不存在“访问控制-允许-原产地”标题。

VM1794 d3.v4.js:11472 GET i7PjHILicXX21mlVeQc1jIA net::ERR_FAILED 303

我已经查过这两个文件了。他们看起来是一样的。我看不出哪里有错误。你能解释一下如何像任何带有URL的文件一样使用驱动器中的文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-13 01:16:11

在当前阶段,当使用webContentLink (如https://drive.google.com/uc?id=###&export=download )的端点时,似乎会出现类似has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.的错误。为了避免这种情况,下面的模式如何?

模式1:

在此模式中,将使用API键。当使用API密钥时,可以删除此问题。您可以看到如何在这里中检索API密钥。在您的URL中,它如下所示。

代码语言:javascript
运行
复制
https://www.googleapis.com/drive/v3/files/{fileId}?alt=media&key={APIkey}

当使用此URL时,它将成为以下脚本。

代码语言:javascript
运行
复制
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://www.googleapis.com/drive/v3/files/{fileId}?alt=media&key={APIkey}', function(data) {console.log(data)})
</script>

模式2:

在此模式中,不使用API键。当我看到你的问题时,我注意到了In the exemple I followed, the tree is generated with a csv. So, I have generated with apps script a csv file on my google drive from a google sheet and now。由此,我了解到您希望使用从电子表格中检索的CSV数据。如果我的理解是正确的,我认为你的目标可以直接使用电子表格。其流程如下。

  1. 将电子表格发布为网页。参考
    • 这样,您就可以像https://docs.google.com/spreadsheets/d/e/2PACX-###/pubhtml一样检索URL。

  2. 修改URL。

代码语言:javascript
运行
复制
- In this URL, the 1st sheet of the Spreadsheet is used. For example, when you want to use the other sheet, please modify it as follows using the sheet ID.

https://docs.google.com/spreadsheets/d/e/2PACX-###/pub?output=csv&gid={sheetId}

当您的脚本使用此URL时,如下所示。

代码语言:javascript
运行
复制
<script src="https://d3js.org/d3.v4.js"></script>
<script>
d3.csv('https://docs.google.com/spreadsheets/d/e/2PACX-###/pub?output=csv', function(data) {console.log(data)})
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72596818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档