【发布时间】:2012-11-26 16:21:47
【问题描述】:
我有以下查询字符串:
query = 'https://www.googleapis.com/fusiontables/v1/query?sql=SELECT%20Precinct%20FROM%201Kj-5ett9nIpkr2-gkof0cUGiaZm1BDVZx9zv-iQ%20WHERE%20ST_INTERSECTS(geometry,%20RECTANGLE(LATLNG(40.7549937,%20-73.98841900000002),%20LATLNG(40.7549937,%20-73.98841900000002)))&key=AIzaSyBJ1SHkB7EWWVSyDiPUA1mWZDEKt7gISDk'
通过 HTTP GET 请求返回以下对象:
{
"kind": "fusiontables#sqlresponse",
"columns": [
"Precinct"
],
"rows": [
[
"76"
]
]
}
所以我正在尝试使用 jQuery 将其获取到网络浏览器中。这在 Firefox 和 Chrome 中运行良好:
$.get(precinctQuery, function(data){console.log(data)});
但 Firefox 不喜欢这样:
$.get(precinctQuery, function(data){console.log(data.rows[0][0])});
或者这个:
$.get(precinctQuery, function(data){console.log(data.['rows'][0][0])});
两次,Firefox 都说结果是未定义的。 Chrome 返回预期结果“76”。
Chrome 是否会在后台修复此代码以使其正常工作?为什么 Firefox 不喜欢它?
【问题讨论】:
-
当您尝试访问其索引时,您确定
data是一个数组吗?还是只是一个包含数组表示的字符串? -
我建议您检查一下 Firefox 中的
data到底是什么。它可能不是你所期望的,所以你需要看看它实际上是什么。如果是我,我会在你的成功回调中设置断点并直接检查数据参数或使用console.log()语句检查data、data.rows和data.rows[0]。 -
您需要在收到的
data上致电$.parseJSON。或者你可以从一开始就使用$.getJSON。 -
是的,你是对的。在 Chrome 中
typeof data返回object。在 Firefox 中,typeof data返回string。它看起来没有被解析。 -
谢谢,@nhahtdh!这很好用。我想知道为什么 Chrome 会自动解析,而 Firefox 不会。
标签: jquery json firefox google-chrome