我尝试将Google云端硬盘用作托管JSON文件的测试平台。这允许我将我的客户端文件交给我的设计师同事,而无需设置WebApi控制器或nodeJS服务器。
我尝试在我的JavaScript中调用它:
$.ajax({
type: "POST",
dataType: 'json',
contentType: "application/json",
url: "https://drive.google.com/file/d/0B-6bXDnuW6gPT3NUQ1VSQW12Z1k/view?usp=sharing"
})
.done(function( data ) {
// reference data here
alert( data );
});
这是我试图回来的数据:
[{
"Name": "Soren Kierkegaard",
"Timestamp": "1301190400",
"Comment": "Life is understood backwards, but it is lived forwards.",
"StaticURL": "./img/some_guy2.png"
}]
但我回来了:
XMLHttpRequest无法加载 https://drive.google.com/file/d/0B-6bXDnuW6gPT3NUQ1VSQW12Z1k/view?usp=sharing。 No' Access-Control-Allow-Origin'标题出现在请求的上 资源。起源' null'因此不允许访问。
这让我怀疑浏览器(或者jQuery?)是否希望响应头包含一个' Access-Control-Allow-Origin'键/值对。
除非我可以在JSON中将其添加为键/值对?这会为我的数据添加一个外层,但我应该能够解析客户端JavaScript中的那个OK。
我尝试了几种GET / POST和数据类型的组合。 Jsonp似乎建议我必须在Google上设置脚本,而且我没有看到在Google上设置jsonp的简单方法,或者要求Google在其响应标头中添加内容。
类似的StackExchange帖子通过不同的平台和不同的结果:JSON not parsed
答案 0 :(得分:3)
通过使用myjson.com作为主机提供商,我能够解决这个问题。
老实说,我不明白静态json文件如何造成安全隐患。动态json -maybe-但如果它来自谷歌驱动器上的文件它不会动态创建,对吧?
Google Drive API需要阻止凭据箍跳过......这不利于快速原型设置或设置暂存环境。
答案 1 :(得分:0)
从谷歌驱动器获取更改URL所需的文件内容,使用googledrive / host链接,如下所示: 使用链接“https://googledrive.com/host/0B-6bXDnuW6gPT3NUQ1VSQW12Z1k”