我有代码可以在使用AJAX调用加载页面后从Instagram自我提取中检索更多照片。它是通过点击页面上的按钮触发的。代码可以工作,但它一直在检索相同的照片。我知道它,因为AJAX网址保持相同的价值。我在AJAX调用完成后尝试更新AJAX URL。我最初使用PHP设置了AJAX url变量。我在AJAX成功函数中有代码来更新变量,但它似乎不起作用。我只想获取从AJAX调用返回的next_url值并向Instagram发出新请求。我无法弄清楚我做错了什么。这是我的代码:
$('#more').click(function() {
var nexturl = '<?php echo $nexturl; ?>';
$.ajax({
method: "GET",
url: nexturl,
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpcallback",
success: function(data) {
// Output data
$.each(data.data, function(index, item) {
$('#photos').append('<div class="col-md-4"><img class="media" src="' + data.data[index].images.low_resolution.url + '"><div class="content"><div class="avatar" style="background-image: url(' + data.data[index].caption.from.profile_picture + ')"></div><p>' + data.data[index].caption.from.username + '</p><p>' + data.data[index].likes.count + ' likes</p><div class="comment">Comments:' + data.data[index].caption.text + '</div></div></div>');
});
// If the next url is not null or blank:
if ( data.pagination.next_url ) {
nexturl = data.pagination.next_url;
}
},
error: function(jqXHR, textStatus, errorThrown) {
//alert("Check you internet Connection");
$("#log").val($("#log").val() + 'Error\n');
}
});
});
更新: 这是我的新方法:
// Show 'load more' button
<?php echo "<br><button id=\"more\" data-nexturl=\"{$nexturl}\">Load more</button>"; ?>
</div>
<div id="log"></div>
<script>
$(document).ready(function() {
$('#more').click(function() {
nexturl = $(this).data('nexturl');
$.ajax({
type: 'GET',
url: nexturl,
dataType: 'jsonp',
jsonp: "callback",
jsonpCallback: "jsonpcallback",
cache: false,
success: function(data) {
// Output data
$.each(data.data, function(index, item) {
$('#photos').append('<div class="col-md-4"><img class="media" src="' + data.data[index].images.low_resolution.url + '"><div class="content"><div class="avatar" style="background-image: url(' + data.data[index].user.profile_picture + ')"></div><p>' + data.data[index].user.username + '</p><p>' + data.data[index].likes.count + ' likes</p></div></div>');
});
// Store new next_url
$('#more').data('nexturl', data.pagination.next_url);
}
});
});
});
</script>