YUI“获取”实用程序的文档页面显示:
Get Utility非常适合加载你的 自己的脚本或CSS逐步 (延迟加载)或检索 来自中国的跨域JSON数据 你完全信任。
...但是没有任何实际的例子来说明这一点。他们的一个示例实际上并不是从远程服务器请求JSON文档,而是包含实际JavaScript以及JSON数据的文档。
我只对Google Maps API HTTP(REST)界面的JSON响应感兴趣。因为我无法使用“Connect”实用程序进行跨站点脚本编写,所以我正在尝试“获取”实用程序。但是,当然只是将一些JSON数据插入到页面中并不会做任何事情。我必须将它分配给变量。但是如何?
此外,只是将JSON数据插入页面使得Firefox抱怨存在JavaScript错误。可以理解!普通的'JSON数据不会被解析为有效的JavaScript。
有什么想法吗?
答案 0 :(得分:0)
通常在这种情况下,最简单的方法是返回使用json调用回调的javascript。例如:
function xdCallback( json ) {
// here I can do whatever I need with json, maybe
SomeModule.heresTheJson( json );
// or
globalVar.json = json;
// etc
}
在您的服务器端,您不仅返回JSON,而且返回类似:
xdCallback( { json: 'goes', here: true } );
...当你通过ajax调用得到它时执行'script'并且你已经设置好了。
答案 1 :(得分:0)
行。看起来没有谷歌的HTTP地理编码接口支持JSONP,没有办法做到这一点。 :(
答案 2 :(得分:0)
Sean - 您可能会发现YUI Connection Manager的XDR支持正是您所需要的 -
http://developer.yahoo.com/yui/examples/connection/xdr.html(YUI 2) http://developer.yahoo.com/yui/3/examples/io/io-xdr.html(YUI 3)
使用连接管理器(YUI 2)或IO(YUI 3)引入JSON,然后在任一代码行中使用JSON组件在加载后解析JSON。
如果谷歌或雅虎!在相关服务器上拥有必要的跨域支持,您应该开展业务。
-Eric
答案 3 :(得分:0)
我使用YAHOO.lang.JSON.parse将字符串解析为json。此外,stringify方法可用于从JSON返回到字符串: