从包含页面的 jsonp api 检索数据

retrieving data from jsonp api that contains pages

当数据被拆分成页面时,我对如何从 jsonp api 检索所有数据有点困惑。回调看起来像这样:

{
entries: [],
page: 1,
pages: 101,
posts: 10054
}

下面的代码只获取第 1 页的结果,但我想获取所有 101 页的结果。如果我向 url 添加一个查询,例如:&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);

})

您可以使用 $.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>

您可以先调用以获取页数,然后在下一次调用中循环浏览它们。 试试下面的代码

$.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>