2013-05-22 2 views
2
app.get('/my_profile_picture', function(req,res){ 
    getPicture(req.user.id, function(url){ 
     res.redirect(url); 
    }); 
}); 

Это мой код. Однако, когда пользователь изменяет свое изображение профиля, браузер по-прежнему переходит к URL старого изображения. Это потому, что в браузере есть «перенаправление» или что-то еще.В Node.js/Express, как отключить кеш браузера для перенаправления?

Как изменить ответ в Express так, чтобы не было кеша вообще?

+0

Смотрите также [Как заставить Chrome НЕ кэшировать переадресовывает?] (Http://stackoverflow.com/questions/13553420/how-to-force-chrome-not-to-cache-redirects?) - без ответа в это время. –

ответ

1

Попробуйте перенаправить перенаправление на 307 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8), так как они не должны кэшироваться по умолчанию.

app.get('/my_profile_picture.jpg', function(req,res){ 
    getPicture(req.user.id, function(url){ 
     res.statusCode = 307; 
     res.redirect(url); 
    }); 
}); 
+0

В соответствии с спецификацией HTTP 307 не требуется, чтобы избежать кеширования. Экспресс по умолчанию имеет значение 302 для 'res.redirect', а ответ 302 - только кэшируемый, если указано полем Cache-Control или Expires." Тем не менее, в Chrome есть [ошибка] (https://code.google.com/p/chromium/issues/detail?id=103458), которая вызывает кеширование переадресаций. По словам комментатора, это относится и к 307 переадресациям. Так что будьте осторожны. –

+0

@MerynStol Я удивлен, что ошибка * еще * не исправлена! Прошло полтора года! – Intermernet

+0

Это не работает. Мой браузер по-прежнему показывает старую переадресацию – TIMEX

Смежные вопросы