我正在尝试使用jquery上传图片。并且上传应该在没有页面刷新的情况下完成。
代码:
var uploader = new qq.FileUploaderBasic({
element: document.getElementById('file-uploader'),
button: $('#account #picture .header')[0],
action: '<?= Route::url('Account Upload Avatar'); ?>',
allowedExtensions: ['png', 'jpg', 'gif'],
onSubmit: function()
{
},
onComplete: function(id, fileName, avatar)
{
$('#loader').hide();
$('#picture img').attr('src', responseJSON + '?' + (new Date).getTime());
}
});
我在哪里上传图片:
<div id="picture">
<div class="header">
Schimba-ti poza
</div>
<img src="<?= $image->avatar_url ?>"></img>
</div>
问题是:
上传完成正确,但只有刷新页面才能看到新图片。否则,当我上传一张新照片时,旧的照片会消失,而是出现一个图像破碎的图标,如果我检查该元素,我会看到:<img id="picture" src="undefined?1308840720252">
所以我得到了那个未定义的...我猜这是因为那个attr。
我正在使用jquery 1.6.1
任何想法?
答案 0 :(得分:3)
确保defined
< - 的 avatar.url
变量 - 可能是导致问题的原因
答案 1 :(得分:0)
您的服务器端可能应该返回有效的JSON,它将被解析并作为第三个函数参数发送到onComplete
。
如果无法收到JSON,您将收到一个空对象。
执行:
console.log(avatar);
回调中的来检查第三个参数中的实际内容。