【问题标题】:jquery $.ajax() function problems with image cachingjquery $.ajax() 函数与图像缓存有关的问题
【发布时间】:2012-01-08 02:40:55
【问题描述】:

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

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

我也试过

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

还是不行

即使我上传新图片,似乎缓存的图片也会加载到个人资料图片中。
问题是我想在不刷新页面的情况下使用 ajax 执行此操作。
如果我重新加载页面,图片就会改变。请提供任何帮助。 另外,我如何在成功函数中验证 $.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 时,我不能。 有没有其他方法可以处理这种情况。

【问题讨论】:

    标签: jquery ajax caching


    【解决方案1】:

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

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

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

    【讨论】:

    • 我怎么能在这里做到这一点 $(".imgContainer").html("");
    猜你喜欢
    • 2013-02-18
    • 2012-08-29
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2011-02-14
    • 2011-05-22
    • 1970-01-01
    • 2011-09-22
    相关资源
    最近更新 更多