我每5秒轮询S3一张图片。我的轮询成功,我可以看到它在Web检查器中获取带有图像的URL。但是done()内部的函数没有执行(我看不到任何记录到控制台的内容):
(function poll() {
setTimeout(function () {
userId = $('#photo').data('user-id');
photoPath = $('#photo').data('photo-path');
$.ajax({
type: 'GET',
dataType: 'json',
url: 'http://s3.amazonaws.com/my_bucket/user-photos/'+userId+'/original/'+photoPath,
done: function (data) {
console.log(data);
$("#photo").append(data);
},
complete: poll
});
}, 5000);
})();
我做错了什么?
答案 0 :(得分:1)
您要求dataType: 'json'
,但由于服务器正在发送图片,您无法获得回复。
您想要在$('#photo')
显示图片吗?
(function poll() {
setTimeout(function () {
console.log('polling');
userId = $('#photo').data('user-id');
photoPath = $('#photo').data('photo-path');
$('<img>').on('load', function(){
$('#photo').empty().append(this);
poll();
}).prop('src', 'http://s3.amazonaws.com/my_bucket/user-photos/'+userId+'/original/'+photoPath);
}, 5000);
})();
Demo(图片路径被jsfiddle徽标替换)