目前,我有一个以json格式呈现数据的网址。
网址:
http://10.0.1.11/render?target=threshold(400,test)&from=-1mins&format=json&jsonp=?
在浏览器中运行时给我
?([{"target": "test", "datapoints": [[400, 1388755180], [400, 1388755190], [400, 1388755200], [400, 1388755210], [400, 1388755220], [400, 1388755230], [400, 1388755240]]}])
我需要 json 结果中的一个变量进行进一步处理。我尝试了以下方法
foo
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$.getJSON("http://10.0.1.11/render?target=threshold(400,test)&from=-1mins&format=json&jsonp=?", function(result){
//response data are now in the result variable
alert(result);
});
</script>
理想情况下,我需要:
var test = [{"target": "test", "datapoints": [[400, 1388755180], [400, 1388755190], [400, 1388755200], [400, 1388755210], [400, 1388755220], [400, 1388755230], [400, 1388755240]]}];
我哪里出错了?
您需要将请求解释为 jsonp 而不是 json。 jsonp 就像 json,但它是包装在方法调用中的 json。(参见:JSONP是关于什么的?)
您可以使用以下内容:
<script>
function myCallback(json_data){
//do something with json_data!
}
</script>
<script type="text/javascript" src="http://10.0.1.11/render?target=threshold(400,test)&from=-1mins&format=json&jsonp=myCallback"></script>
或
<script>
$(document).ready(function(){
$.ajax({
url: 'http://10.0.1.11/render?target=threshold(400,test)&from=-1mins&format=json',
dataType: 'jsonp',
success: function(json_data){
//do something with json_data!
}
}
});
})
</script>
(示例改编自链接的帖子)