当数据在页面中分割时,我对如何从 jsonp api 检索所有数据感到有些困惑。回调看起来像这样:
{
entries: [],
page: 1,
pages: 101,
posts: 10054
}
下面的代码只能从第1页获得结果,但我想从所有101页获得结果。如果我向网址添加一个查询,例如:&page=2
或&page=3
我只能访问该网页中的对象,我试图访问所有网页中的所有对象一次性... ..
会很感激一些帮助:)
$.getJSON('http://hotell.difi.no/api/jsonp/mattilsynet/smilefjes/tilsyn?callback=?', function(data){
var html = "";
$.each(data.entries, function(key,value){
html += '<p>' + value.navn + '</p>';
})
$('#test').html(html);
})
答案 0 :(得分:2)
您可以先拨打电话获取页数,然后在下一个电话中循环播放。 请尝试下面的代码
$.getJSON('http://hotell.difi.no/api/jsonp/mattilsynet/smilefjes/tilsyn?callback=?', function(data) {
var pages = data.pages;
for (var i = 1; i <= data.pages; i++) {
$.getJSON('http://hotell.difi.no/api/jsonp/mattilsynet/smilefjes/tilsyn?callback=?&page=' + i, function(data) {
$('#test').append("Page " + data.page + " Data >> ");
var html = "";
$.each(data.entries, function(key, value) {
html += '<p>' + value.navn + '</p>';
})
$('#test').append(html);
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">
</div>
答案 1 :(得分:0)
您可以使用$ .ajax()而不是$ .getJSON()来使用jsonp。你必须在你的javascript代码中声明你的回调方法
$("#btn").click(function(){
$.ajax({
url: "http://hotell.difi.no/api/jsonp/mattilsynet/smilefjes/tilsyn?callback=myJsonpCallbackMethod",
dataType: "jsonp",
success: function( response ) {
//console.log( response ); // server response
}
});
});
function myJsonpCallbackMethod(data){
alert("Hello");
console.log( data ); // server response
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button id="btn">Click Me</button>