我需要使用以下结构访问javascript中的json对象:
jsonp1354291250080({
"query":{"count":"1","created":"2012","lang":"en"},
"results":["this is a test"]
});
我从在线服务收到此对象,我无法控制其结构,并且使用data.query
无效。
请有人知道如何访问它。
更新:我正在使用James Padolsey的jquery.xdomainajax.js https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/ 并使用jQuery的$ .get()函数来执行跨域请求
答案 0 :(得分:1)
您正在使用JSONP服务,因为您位于其他域中。您最好的选择是让jQuery's $.getJSON为您处理。
如果网址包含字符串“callback =?” (或类似的,由...定义) 在服务器端API),请求被视为JSONP。见 讨论$.ajax()中的jsonp数据类型以获取更多详细信息。
该页面上的JSONP示例:
<!DOCTYPE html>
<html>
<head>
<style>img{ height: 100px; float: left; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="images">
</div>
<script>
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
{
tags: "mount rainier",
tagmode: "any",
format: "json"
},
function(data) {
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
</script>
</body>
</html>