能够以CSV格式访问Google电子表格,但不能访问JSON格式吗?

时间:2015-01-09 21:35:44

标签: jquery ajax json google-sheets

使用Google的可视化API,我尝试访问Google电子表格中的一行,其中该行在名为" key"的列中有给定的字符串。

当我使用此代码时,会触发成功函数,并且我的数据格式为CSV格式:

$( ".submit" ).click(function() {
    $.ajax({
                url: 'https://docs.google.com/spreadsheets/d/1VNr3_0uknNiZct948fPAnVn9mVfepKTqkprB1orS3eo/gviz/tq?tqx=out:csv&tq=select+B,C,D+where+B+matches+%27Osax5Gm8l3Ew3rXx%27&gid=0',
                type: 'GET',
                success: function(data) { console.log(data); },
                error: function(error) { console.log(error.statusText); }
        });
});

但是当我使用这段代码时,只有 更改为" tgx = out:json"所以我以JSON格式获取数据,错误函数触发。两个特别令人沮丧的方面:我的statusText给了我" OK",我在我的控制台中没有得到任何其他错误消息,所以我无法弄清楚错误是什么。另外,如果我在浏览器中查看此URL,我可以很好地看到JSON代码 - 只有在通过此ajax请求使用时才会失败。

$( ".submit" ).click(function() {
    $.ajax({
                url: 'https://docs.google.com/spreadsheets/d/1VNr3_0uknNiZct948fPAnVn9mVfepKTqkprB1orS3eo/gviz/tq?tqx=out:json&tq=select+B,C,D+where+B+matches+%27Osax5Gm8l3Ew3rXx%27&gid=0',
                type: 'GET',
                success: function(data) { console.log(data); },
                error: function(error) { console.log(error.statusText); }
        });
});

1 个答案:

答案 0 :(得分:0)

默认情况下,在大多数现代浏览器中禁用跨域javascript,除非端点服务器添加了专门允许它的标头。见Access-Control-Allow-Origin

解决此问题的一种方法是在您自己的服务器上运行一些服务器端代码以充当代理。因此,您的javascript从托管页面的同一域中获取数据。