• 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
126 wizyt
pytanie zadane 12 października 2017 w JavaScript, jQuery, AJAX przez Frozenfroggie Użytkownik (970 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
0 odpowiedzi 121 wizyt
+1 głos
1 odpowiedź 200 wizyt
0 głosów
2 odpowiedzi 127 wizyt
pytanie zadane 18 czerwca 2017 w HTML i CSS przez leemish Użytkownik (740 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

54,454 zapytań

98,348 odpowiedzi

202,301 komentarzy

26,749 pasjonatów

Przeglądających: 315
Pasjonatów: 13 Gości: 302

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...