数据来自Google Docs API
Data feed from Google Docs API
我正在尝试使用Google Docs API将电子表格数据作为XML,并最终获得JSON数据。我把URL (http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values)在我的浏览器中,我得到的数据,即使没有登录到谷歌。
当我尝试使用jQuery Ajax时,我得到"page not found"错误。
$.get('http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values', function(data) {
console.log(data)
});
我猜测同源策略可能是Ajax错误的原因,所以我尝试使用PHP,但我得到了错误。
echo file_get_contents("http://spreadsheets.google.com/feeds/list/0Aizy-VIdLC0QdDNNRkpfVncxQzZRNG9fMVhueXVMenc/1/private/values");
我的目标是得到谷歌文档电子表格数据到一个JSON对象的网页上使用。
如何修复这个错误?
您必须登录才能检索电子表格数据。
登录时访问http://spreadsheet.google.com/.../private/values会得到一个有意义的XML页面。在未登录的情况下尝试加载相同的页面,但是会导致"page not Found"。
根据JQuery响应的响应头,这个错误的唯一原因是没有登录(如下所示)。
WWW-Authenticate: No credentials were included in your request.
相关文档请参见《协议指南》
假设您再次检查URL字符串,原因可能是同源策略。由于浏览器的严格安全策略,您无法从其他域获取数据。
如果您想通过这个,您需要使用不同的方法,例如JSONP。
您可以在Ajax文档页面上阅读更多关于如何在jQuery中实现JSONP的信息。
相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- chrome.serial API docs for Chrome 31?
- 为用Express 4.x编写的API创建Swagger-docs
- 数据来自Google Docs API
- Google Docs API for Node.js