我试图使用jQuery解析JSON,并遇到问题。使用下面的代码,数据不断回来空:问题在Firefox和Chrome中使用jQuery获取JSON结果(IE8 Works)
<!DOCTYPE html>
<html>
<head>
<title>JSON Test</title>
</head>
<body>
<div id="msg"></div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$.ajax({
url: 'http://datawarehouse.hrsa.gov/ReleaseTest/HGDWDataWebService/HGDWDataService.aspx?service=HC&zip=20002&radius=10&filter=8357&format=JSON',
type: 'GET',
dataType: 'json',
success: function(data) {
$('#msg').html(data[0].title); // Always null in Firefox/Chrome. Works in IE8.
},
error: function(data) {
alert(data);
}
});
</script>
</body>
</html>
的JSON结果如下所示:
{"title":"HEALTHPOINT TYEE CAMPUS","link":"http://www.healthpointchc.org","id":"tag:datawarehouse.hrsa.gov,2010-04-29:/8357","org":"HEALTHPOINT TYEE CAMPUS","address":{"street-address":"4424 S. 188TH St.","locality":"Seatac","region":"Washington","postal-code":"98188-5028"},"tel":"206-444-7746","category":"Service Delivery Site","location":"47.4344818181818 -122.277672727273","update":"2010-04-28T00:00:00-05:00"}
如果我代替我的Flickr的API URL(http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?),我得到的网址返回我能够使用的有效JSON结果。
我已经成功地验证了我的JSON JSONLint,所以我已经没有意识到我可能做错了什么。
有什么想法?
更新:我让客户端将内容类型切换到application/json。不幸的是,我仍然遇到完全相同的问题。我还更新了我的HTML并包含了我一直在使用的实时URL。
更新2:我刚刚在IE8中给了这个尝试,它工作正常。出于某种原因,它不适用于Firefox 3.6.3或Chrome 4.1.249.1064(45376)。我确实注意到返回的数据存在一个错误(开发人员正在返回一组数据,即使对于总是会返回单个记录的查询),但它仍然困扰着为什么它在其他浏览器中无法正常工作。
注意到我正在从本地文件系统上的HTML文件开始工作可能很重要。我认为这可能是一个XSS问题,但这并不能解释为什么Flickr的作品。
响应代码是什么?你可以尝试切换到'$ .ajax()'调用并检查你的调用中的错误吗? – justkt 2010-04-29 13:56:07