从包含页面的 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>
当数据被拆分成页面时,我对如何从 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>