Проблемы с функцией jquery $ .ajax () при кэшировании изображений - PullRequest
3 голосов
/ 28 ноября 2011

У меня очень странная проблема.Я создал систему входа в систему с помощью 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, я не могу.Есть ли другой способ, как я могу справиться с этой ситуацией.

1 Ответ

8 голосов
/ 28 ноября 2011

Добавьте случайное значение кеша к URL, заставляя сервер получать свежую копию:

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

Веб-сервер будет игнорировать строку запроса, так как он просто выбирает jpg и строку запросазаставит браузер видеть его как «новый» запрос, поэтому он будет обходить кеш и попадать на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...