Как заставить полную перезагрузку страницы после перенаправления на ту же измененную страницу? - PullRequest
0 голосов
/ 24 августа 2018

У меня довольно большая проблема с Express (я использую Cloud Firestore), и я не нашел никаких решений для SO (даже если эти сообщений , кажется, обсудить мою проблему)

Ниже простого route (все server-side):

// This route is accessible from www.site.com/123/options
router.post('/add', async (req, res, next) => {

  ...

  // 'add' modifies a document in DB and works.

  add(id, stuffToAdd)

  // Afterwards, I want to redirect to www.site.com/123/options/
  // But I need to `CTRL+R` to see new data one the page

  res.header(
    'Cache-Control',
    'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'
  )
  res.redirect(`back`)
})

Я пробовал много вещей:

  • добавить 301, 302, 304, 307 статус к res.redirect (безуспешно)
  • добавить ?v=something в конце URL для обхода cache (безуспешно)
  • изменить headers как указано выше (безуспешно) ...

У вас есть какие-либо подсказки? Спасибо

1 Ответ

0 голосов
/ 24 августа 2018

Вы не можете просто принудительно перезагрузить на стороне клиента?

JQuery AJAX http://api.jquery.com/jquery.ajax/

$.ajax({
    url: "/add",
    type: "POST"
}).done( () => {
    location.reload();
})

Или выборка функции ES6 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

fetch('/test', {
    method: "POST"
 })
.then(response => (
    location.reload()
));
...