我有一个 angularjs SPA。
它通过 XHR 调用:
https://docs.google.com/spreadsheets/d/e/xxxxx-xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxx-/pub?gid=0&single=true&output=csv
基本上以 CSV 形式提供谷歌表格
从几天开始,我看到了重定向,并且不再有 CORS 标头。之前就有 CORS 标头。
API有改变吗?是否有一些带有 CORS 标头的新 API?
PS:我的解决方法如下所示(在我的 ftp/php 主机上):
<?php
$url = 'https://docs.google.com/spreadsheets/d/e/xxxxxxxxxxxxxx/pub?gid=0&single=true&output=csv';
$response = file_get_contents($url);
echo $response;
您可以使用Drive API方法文件:导出
使用
Try this API
将为您提供必须发送的链接,如下所示:
GET https://www.googleapis.com/drive/v3/files/FILE ID/export?mimeType=text%2Fcsv&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
作为解决方法,您可以将该 csv 缓存在服务器本地:
curl -s -L -o data.csv 'https://docs.google.com/spreadsheets/.../pub?...&output=csv'
更新例如每小时:
# /etc/crontab:
0 * * * * su -c '/home/your-user/path-to/cache-data.bash' your-user
sudo systemctl restart crond
并提供缓存的 csv 数据,例如nginx:
# nginx.conf:
server {
# ...
add_header Access-Control-Allow-Origin *;
# ...
}
sudo sbin/nginx -s reload