2016-09-01 3 views
4

Ich bin ein wenig fest auf, wie ich alle Daten von einem JSONP API abrufen können, wenn die Daten in Seiten aufgeteilt sind. Der Rückruf sieht wie folgt aus:Abrufen von Daten aus Jsonp API, die Seiten enthält

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

der Code unter nur bringt mich ergibt sich aus Seite 1, aber ich möchte die Ergebnisse aller 101 Seiten bekommen. Wenn ich der URL eine Abfrage wie &page=2 oder &page=3 hinzufüge, kann ich nur auf Objekte von dieser Seite zugreifen, was ich versuche, auf alle Objekte von allen Seiten in einem Zug zuzugreifen .... würde einige Hilfe schätzen :)

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

}) 

Antwort

2

Sie können erste Anruf die Anzahl der Seiten zu bekommen und in der nächsten Anrufe können Sie eine Schleife durch sie. Versuchen unter Code

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

+0

Dank Mann, das ist, was ich erreichen wollte :) – hb8

0

Sie können Jsonp mit $ .ajax() nicht von $ .getJSON() verwenden. und müssen Sie Ihre Callback-Methode in Ihrem JavaScript-Code deklarieren

$("#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>

+0

überprüfen meine Antwort bearbeitet ... :) –

+0

Danke für die Antwort :) – hb8