对所有人来说
我试图用jQuery的$.getJSON()从Google检索汇率.使用请求:“http://www.google.com/ig/calculator?hl=zh-CN\u0026amp;q=1USD=?CAD”
返回一个简单的JSON文件:{lhs:“1美元”,rhs:“1.03800015加元”,错误:“”,icc:true}
我使用以下jquery函数来获得加元金额:
$(document).ready(function(){ $.getJSON("http://www.google.com/ig/calculator?hl=en&q=1USD=?CAD?&label=rhs&format=json&jsoncallback=?",function(data){ alert(data); }); }); </script>
Fire bug显示正确的JSON文件,但表明使用了无效的标签.
任何帮助表示赞赏.
短发
Google返回纯JSON并且不支持JSONP(= JSON包含在回调中).
JSONP看起来像:
callbackFunction({json_object: "some_data"})
浏览器可以从其他域加载JSONP-Data,例如它可以从其他域的脚本标记中加载JavaScript.纯JSON数据不能作为JavaScript执行,这就是为什么它无法从其他域的脚本标记中加载.
在这种特殊情况下,Google可以使用简单的AJAX(因为它是同一个域)在iGoogle上获取JSON,但您无法从浏览器内部从您的域中请求它.但是,您可以在服务器上查询它,在那里使用结果并将其发送到客户端(您的服务器充当代理).