jquery $ .ajax()函数图像缓存的问题

时间:2011-11-28 16:46:07

标签: jquery ajax caching

我有一个非常奇怪的问题。我用ajax和php创建了一个登录系统 加载userprofile后,用户也会有一张图片 然后当我尝试在模态对话框中使用iframe更改图片并按Save 应在用户配置文件中更改图像,而不刷新页面 我用

$(".userPicture").attr("srs","Users/"+username+"/profileimg.jpg");

我也试过

$(".imgContainer").html("<img src='Users/"+username+"/profileimg.jpg' class='userPic' >");

仍然没有工作

即使我上传新图片,似乎缓存的图片也会加载到个人资料图片中 问题是我想用ajax做这个而不用刷新页面 如果我重新加载页面,图片会被更改。请帮忙。 另外,我如何在success函数中验证$ .ajax函数的特定输出 例如

$.ajax({
    type: 'POST',
    url: baseURL,
    dataType: 'html',
    cache: false,
    data: {
        action: "LOGIN",
        username:username,
        password:password
    },
    success: function(data) {
        if (data == "empty") {
           showError("Error: Wrong Username or Password","loginTab");
        }
        else {

        }
    }
});

当我做数据类型json我可以验证我的数据,如果它是空的,但当我做html我不能。 有没有其他方法可以处理这种情况。

1 个答案:

答案 0 :(得分:8)

向网址添加缓存破坏随机值,强制服务器检索新副本:

"Users/"+username+"/profileimg.jpg?cachebuster=" + new Date().getTime()

网络服务器将忽略查询字符串,因为它只是获取jpg,查询字符串将强制浏览器将其视为“新”请求,因此它将绕过缓存并命中服务器。