• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

res.redirect() nie przekierowuje strony

0 głosów
429 wizyt
pytanie zadane 12 października 2017 w JavaScript przez Frozenfroggie Użytkownik (990 p.)
edycja 12 października 2017 przez Frozenfroggie

Witam, piszę apke to tworzenia ankiet, i potrzebuję zrobić przycisk który pozwoli na usunięcie danej ankiety i przekierowanie na stronę główną. Zrobiłem więc button który onclick będzie wysyłal zapytanie do serwera metodą DELETE, natomiast ID ankiety jest przesyłane w URL.

Plik public/show_poll.hbs

var deleteUrl = location.origin + '/polls/' + '{{{id}}}' + '/delete';
var redirectUrl = location.origin;
function deletePoll() {
  var xhr = new XMLHttpRequest();
  xhr.open('DELETE', deleteUrl, true);
  xhr.onload = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
      console.log(xhr.response);
    } else {
      console.error(xhr.response);
    }
  }
  xhr.send();

Natomiast po stronie serwera użyłem metody Mongoose findByIdAndRemove(), po czym za pomocą res.redirect() próbowałem przekierować na stronę główną:

Plik app/routes/index.js

app.route('/polls/:id/delete')
	.delete(isLoggedIn, function(req,res) {
		 Polls.findByIdAndRemove(req.params.id, function(err, data) {
		    if(err) {
		      res.status(400).json({responseText: "server- Oops! Something went wrong."});
		    } else {
		    	console.log("Data deleted: " + data);
                res.redirect("/");
		    }
		});
	});

Niestety z jakiegoś powodu strona się nie reloaduje, widzę w narzędziach dla programisty (w zakładce Network), że strona startowa jest załadowana a jednak się nie odświeża. Z problemem poradziłem sobie dopiero poprzez przekierowanie na stronę główną po stronie klienta poprzez:

window.location.replace(redirectUrl);

Moje pytanie brzmi: dlaczego strona się nie przekierowuje za pomocą res.redirect? Początkowo myślałem, że jest to związane z metodą DELETE, bo z tego co czytałem to działa trochę inaczej niż POST i przy przekierowaniu metoda nie przestawia się automatycznie na GET, jednakże zmiana zapytania na POST także nie pomogła. Ma ktoś jakiś pomysł, wskazówki, rady, cokolwiek?

www: https://voter-fcc.herokuapp.com

github: https://github.com/frozenfroggie/voting-app

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 436 wizyt
pytanie zadane 3 czerwca 2021 w JavaScript przez Zaqu93 Gaduła (4,850 p.)
+1 głos
1 odpowiedź 314 wizyt
0 głosów
2 odpowiedzi 697 wizyt
pytanie zadane 18 czerwca 2017 w HTML i CSS przez leemish Użytkownik (780 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...