Перенаправление не перезагружает страницу правильно - PullRequest
0 голосов
/ 31 октября 2019

Я выполняю обновление некоторых данных, затем пытаюсь перезагрузить текущую страницу, на которой я нахожусь.

Я нашел код состояния, который позволяет мне изменить метод перенаправления с пута на гет (303). Эта функциональность работает, так как, когда она заканчивается, я получаю «законченная загрузка get localhost: 3000 /». Но маршрут, который я предопределил в "/", не запускается.

Маршрут "/" должен собирать некоторые данные, фильтровать их по логическому значению, а затем передавать их в пользовательский интерфейс. Это работает, когда вы нажимаете кнопку обновления в окне. Но редирект по какой-то причине не работает.

Я приложил изображения для использования.

Это маршрут пут с редиректом, с которым у меня проблемы.

router.put('/api/update/:id', function(req, res) {
  var id = req.params.id;
  Burger.update(id, function(results) {
    console.log(id);
    console.log(results);
  })
  res.redirect(303, '/');
})

Вот маршрут "/", который работает правильно, когда я нажимаю кнопку обновления. но не когда я использую перенаправленный путь выше.

router.get('/', function(req, res) {
  Burger.all(function(data) {
    let eaten = [];
    let notEaten = [];
    // Looping through and depicting which burgers have been eaten and which ones have not.
    for (var i = 0; i < data.length; i++) {
      if (data[i].devoured === 0) {
        notEaten.push(data[i]);
      } else {
        eaten.push(data[i])
      }
    }
    // console.log(eaten);
    // console.log('============');
    // console.log(notEaten);
    var handleBarsObject = {
      eaten: eaten,
      notEaten: notEaten
    }
    // console.log(handleBarsObject);
    res.render('index', handleBarsObject);
  })
})

1 Ответ

0 голосов
/ 31 октября 2019

Тот факт, что вы делаете PUT, должен означать, что вы делаете это с помощью вызова Ajax, а не что-то набираемое в строке URL. Ajax-вызовы сами по себе не показывают контент в браузере. Они возвращают контент в ваш Javascript.

Если вы хотите выполнить переадресацию и показать содержимое перенаправленной страницы в браузере, вам нужно будет проверить ответ на вызов Ajax в вашем Javascript, увидеть, что это код состояния 3xx, получить местоположениезаголовок ответа и затем установите window.location на перенаправленный URL-адрес, чтобы браузер отображал перенаправленную страницу.

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