使用Node.js / Angular在Google电子表格JSON上进行跨源请求
我试图从公开的Google Spreadsheets页面中检索JSON。 最初我试着只是做一个AJAX调用,数据被检索,但我不能保存数据到我的$范围。
接下来我尝试了$ http.get,但碰到了跨源请求问题。
然后,我的解决scheme是使用后端的请求模块来获取JSON
var request = require('request'); var url = "MY_URL"; request(url, function (error, response, body) { if (!error && response.statusCode == 200) { res.send(body); } })
我把它放在前端,所以我可以像这样在这个url上执行$ http.get请求
$http.get(url).success(function(data){ console.log(data); });
但是,当我将其logging到控制台时,Chrome检查器无法parsingJSON,因为Google电子表格JSON在JSON区域之前有“gdata.io.handleScriptLoaded(”)。
我想知道是否有办法仍然可以parsing这个? 或者如果有一个更简单的方法来克服交叉原点请求的问题?
到目前为止,我正在考虑将string拼接成有效的JSON,但我相信还有更好的方法。
对于我的JSONurl,我最终得到了“alt = json-in-script”,使其成为JSONP而不是JSON。 解决scheme是用“alt = json”replace结束string。
然后为了绕过交叉原点请求,我使用了这个Chrome扩展 。